亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

java 實現pop3 server

2019-11-18 14:49:57
字體:
來源:轉載
供稿:網友


本人公布此程序希望能給熱愛java的朋友一點幫助!!
如大家有什么不明白的地方可以詢問
//write --1998.6

import java.net.*;   
import java.util.*;   

public class pop3server{   
PRivate static final int SERVER_PORT=110;   
private static final int MAX_CLIENT=500;   
private ServerSocket listenSocket=null;   
private boolean keeprunning=true;   
private InetAddress ip;   
public static void main(String[] args){   
pop3server server=new pop3server();   
server.impserver();   
}   
public void impserver(){   
Socket clientSocket=null;   
try{   
while(keeprunning){   
clientSocket=listenSocket.accept();   
int numThreads=Thread.activeCount();   
System.out.println(numThreads);   
manageconnection newhandle=new manageconnection(clientSocket);   
Thread newhandlethread=new Thread(newhandle);   
newhandlethread.start();   
System.out.println("hello");   

}   
}   
catch(IOException excpt){   
System.err.println("Sorry ,Failed I/O:"+excpt);   
}   

}   

public pop3server()   
{   
try{   
listenSocket=new ServerSocket(SERVER_PORT,MAX_CLIENT);   
}catch(IOException excpt){   
System.err.println("SOrry to open port "+SERVER_PORT+":"+excpt);   
System.exit(1);   
}   
}   
}   

/*follow is manage and process command class*/   

class manageconnection implements Runnable{   
private static final boolean AUTOFLUSH=true;   
private Socket mySocket=null;   
private PrintWriter out=null;   
private BufferedReader in=null;   
private boolean checkedpass=false;   
private int msgnum=0;   
private long[] msgsize=new long[100];   
private long totalsize=0;   
private String username=null;   
public manageconnection(Socket newSocket){   
mySocket=newSocket;   
}   
public void run(){   
String nextline=null;   
String passWord;   
int check=0;   
int strlen;   
String content="Subject:hello";   
String command=null;   
String auth_user="user";   
String arg1;   
int arg2=0;   
String arg3;   
int i=0;   
int count=0;   
int time=0;   
try{Thread.currentThread().sleep(10);   
}catch(Exception e){   
System.out.println(e);   
}   
try{   
mySocket.setTcpNoDelay(true);   
time=mySocket.getSoTimeout();   
}catch(SocketException excpt){   
System.out.println(excpt);   
}   
try{   
out=new PrintWriter(mySocket.getOutputStream(),AUTOFLUSH);   
in=new BufferedReader(new InputStreamReader(mySocket.getInputStream())
   
);   
/*System.out.println("hello thread1");*/   
out.println("+OK"+" TianHua's pop3 server");   
try{   
while(true){   
if(check!=3){   
try{   
nextline=in.readLine();}catch(Exception excpt){   
System.out.println("sorry:"+excpt);   
break;   
}   
System.out.println(count+" "+nextline);   

if(nextline.length()<4){
out.println("-ERR");
}else{
command=nextline.substring(0,4);
if(command.equalsIgnoreCase("user")){
i=1;
}
if(command.equalsIgnoreCase("pass")){
i=2;
}
if(command.equalsIgnoreCase("stat")){
i=3;
}
if(command.equalsIgnoreCase("quit")){
i=4;
}
if(command.equalsIgnoreCase("list")){
i=5;
}
if(command.equalsIgnoreCase("retr")){
i=6;
}
if(command.equalsIgnoreCase("dele")){
i=7;
}

switch(i){
case 1:if(check==0){
check=1;
if(nextline.length()<5){
out.println("-ERR");
}else{arg1=nextline.substring(5);
username=arg1;
out.println("+OK");
}
}else{out.println("-ERR");}
i=0;
break;
case 2:if(check==1){
if(nextline.length()<5){
out.println("-ERR");
}else{
arg1=nextline.substring(5);
password=arg1;
if(check(username,password)=='1'){
check=2;
/*msgnum=readmail(username);*/
out.println("+OK");}else{
out.println("-ERR"+" sorry auth failed");
check=0;}
}
}else{out.println("-ERR");}
i=0;
break;
case 3:if(check==2){
msgnum=readmail(username);
out.println("+OK"+" "+msgnum+" "+totalsize);
}else{
out.println("-ERR");
}
i=0;
break;
case 4:out.println("+OK BYE BYE welcome to TianHua's Mail System next

time");
check=3;
i=0;
break;
case 5:if(check==2){
out.println("+OK");
out.println(msgnum+" "+totalsize);
int ii,iii=0;
for(ii=1;ii<=msgnum;ii++){
out.println(ii+" "+msgsize[iii]);
iii++;
}
out.println(".");
}else{
out.println("-ERR");
}
i=0;
break;
case 6:if(check==2){
if(nextline.length()<5){
out.println("-ERR");
}else{
arg1=nextline.substring(5);
out.println("+OK");
System.out.println(arg1);
printmail(Integer.parseInt(arg1),username);
out.print("/r/n");
out.print(".");
out.print("/r/n");
boolean st=out.checkError();
System.out.println(st);
/*if(nextline.length()<6){
out.println("-ERR");
}else{
try{
arg2=Integer.parseInt(nextline.substring(5));
}catch(NumberFormatException except)
{
out.println("-ERR");
break;
}
if(msgnum==0){
out.println("-ERR no msg retrived");
}
if(arg2<=msgnum){
out.println("+OK");
out.println(content);
out.println("");
out.print(".");
out.println();
out.println(".");
System.out.println("msg finished");
}else{
out.println("no sUCh msg");
}
}*/
}
}else{out.println("-ERR");
}
i=0;
System.out.println("retr finished");
break;
case 7:if(check==2){
out.println("+OK");
}else{
out.println("-ERR");
}
i=0;
break;
default:out.println("-ERR");
i=0;
break;


}
}
}else{
out.close();
in.close();
mySocket.close();
break;
}

}
}catch(NullPointerException excpt){
System.out.println("sorry "+excpt);
in.close();
out.close();
mySocket.close();
}

}catch(IOException excpt){
System.err.println("Failed I/O:"+excpt);
}

System.out.println("bye");

}
private void printmail(int msgnumber,String uname){
String msgdir="/webmail/userinfo/";
String msgfile=msgdir+uname+"/"+Integer.toString(msgnumber);
System.out.println(msgfile);
long filepoint=0;
try{
RandomaccessFile file=new RandomAccessFile(msgfile,"r");
long msglength=file.length();
while(filepoint<msglength){
String s=file.readLine();
out.println(s);
try{
Thread.currentThread().sleep(5);
}catch(Exception e){
System.out.println(e);
}
filepoint=file.getFilePointer();
}
}catch(Exception e){
System.out.println(e);
}

}


/*check your username and password*/
private char check(String user,String pass){
String[] arg=new String[2];
int c=0;
char value='0';
arg[0]="uname="+user;
arg[1]="pass="+pass;

try{

Process child=Runtime.getRuntime().exec("/disk2/FTP/pub/login"

,arg);
InputStream inn =child.getInputStream();
while((c=inn.read())!=-1){
value=(char)c;
}
inn.close();

try{child.waitFor();}catch(InterruptedException e){

e.printStackTrace();
}

}catch(IOException e){
System.err.println(e);
}
return value;

}


private int readmail(String uname){
String[] arg=new String[1];
arg[0]="username="+uname;
int[] msg=new int[3];
int i=0,j=0;
int msgnum=0;
int c;
try{
Process child=Runtime.getRuntime().exec("/disk2/ftp/pub/readmail",

arg);
InputStream inn =child.getInputStream();
while((c=inn.read())!=-1){
msg[i]=c-48;
i++;
}
inn.close();
try{child.waitFor();}catch(InterruptedException e){
e.printStackTrace();
}
}catch(IOException e){
System.err.println(e);
}
for(j=0;j<=i;j++){
msgnum=msgnum+msg[j];
}
System.out.println(msgnum);
int k=0;
try{
for(j=1;j<=msgnum;j++){
RandomAccessFile file=new RandomAccessFile("/webmail/userinfo/"+uname+

"/"+Integer.toString(j),"r");
msgsize[k]=file.length();
totalsize=msgsize[k]+totalsize;
System.out.println(msgsize[k]);
k++;
}
}catch(Exception e){
System.out.println(e);
}
System.out.println(totalsize);
return msgnum;
}

}  



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色噜噜亚洲精品中文字幕| 久久久国产一区二区三区| 中文字幕日韩在线视频| 一区二区三区在线播放欧美| 国产乱肥老妇国产一区二| 91香蕉亚洲精品| 欧美乱妇高清无乱码| 亚洲图片在线综合| 日韩中文有码在线视频| 亚洲欧洲在线观看| 久久影院资源网| 性色av一区二区三区| 国产免费一区视频观看免费| 亚洲欧美日韩天堂一区二区| 一本大道亚洲视频| 欧美激情第三页| 国产最新精品视频| 亚洲国产精彩中文乱码av| 97成人精品区在线播放| 日韩av在线免播放器| 成人免费观看a| 欧美视频在线观看 亚洲欧| 欧美在线观看日本一区| 国产精品人成电影在线观看| 日韩视频亚洲视频| 亚洲国产成人91精品| 日韩在线播放av| 日韩精品视频三区| 日韩在线免费高清视频| 5252色成人免费视频| 国产91对白在线播放| 9.1国产丝袜在线观看| 国产精品av在线播放| 亚洲欧美日韩图片| 久久亚洲精品小早川怜子66| 亚洲三级 欧美三级| 78m国产成人精品视频| 久青草国产97香蕉在线视频| 欧美xxxx18国产| 91国产在线精品| 欧美国产激情18| 国产区亚洲区欧美区| 亚洲激情视频网| 欧美日韩第一视频| 精品一区二区电影| 成人精品视频久久久久| www.xxxx精品| 欧美成人剧情片在线观看| 亚洲欧美国产精品专区久久| 狠狠躁夜夜躁久久躁别揉| 美女撒尿一区二区三区| 成人激情视频在线观看| 国产精品69久久| 最新国产成人av网站网址麻豆| 亚洲精品资源在线| 不卡毛片在线看| 欧美国产在线电影| 国产精品成人av性教育| 欧美视频国产精品| 日韩欧美中文字幕在线播放| 成人在线激情视频| 日韩成人av在线播放| 国产精品一区二区三区成人| 国产精品av在线播放| 日韩精品在线电影| 午夜精品蜜臀一区二区三区免费| 亚洲一区二区三| 日韩高清av在线| 亚洲网站视频福利| 国产精品亚洲自拍| 成人xvideos免费视频| 欧美亚洲另类视频| 久久精品国产免费观看| 国产精品亚洲美女av网站| 日韩av在线一区二区| 久久精品亚洲热| 亚洲欧美另类自拍| www.日韩.com| 成人欧美一区二区三区在线湿哒哒| 91精品国产精品| 成人久久18免费网站图片| 亚洲一级免费视频| 日韩视频免费观看| 亚洲人成在线免费观看| 久久夜精品va视频免费观看| 亚洲国产美女久久久久| 亚洲欧美在线一区二区| 国产精品视频色| 中文字幕亚洲一区二区三区| 国产精品永久在线| 国产精品白嫩美女在线观看| 91精品国产高清久久久久久| 91香蕉电影院| 26uuu亚洲国产精品| 欧美一级电影免费在线观看| 精品国产电影一区| 久久偷看各类女兵18女厕嘘嘘| 久久久久久久久综合| 欧美激情视频给我| 国产精品久久久久久久天堂| 中文字幕国产精品久久| 成人一区二区电影| 国产精品最新在线观看| 一个色综合导航| 亚洲**2019国产| 久久精品中文字幕免费mv| 欧美在线视频播放| 九九九久久久久久| 亚洲肉体裸体xxxx137| 欧美肥臀大乳一区二区免费视频| 日韩在线资源网| 日韩激情视频在线| 亚洲视频在线播放| 国产专区欧美专区| 亚洲精品久久久一区二区三区| 国产精品精品国产| 夜夜嗨av色一区二区不卡| 亚洲电影免费观看高清完整版在线观看| 国产精品亚洲自拍| 国产精品9999| 92看片淫黄大片看国产片| 亚洲自拍av在线| 欧美极品少妇xxxxx| 日韩一中文字幕| 77777亚洲午夜久久多人| 性色av香蕉一区二区| 精品国产一区二区三区久久久| 国产精品jizz在线观看麻豆| 国产成人精品网站| 中文国产亚洲喷潮| 欧美成人免费视频| 国产精品久久久久77777| 成人黄色av网| 亚洲人午夜精品免费| 中文字幕精品一区二区精品| 精品少妇一区二区30p| 亚洲美女精品成人在线视频| 色综合久久精品亚洲国产| 亚洲专区国产精品| 国产精品都在这里| 亚洲男人天堂2024| 久久久久久久久综合| 久久久久亚洲精品成人网小说| 欧美高清第一页| 国产成人综合久久| 夜夜嗨av一区二区三区四区| 亚洲综合在线做性| 日日骚久久av| 美女av一区二区| 日韩最新中文字幕电影免费看| 欧美老女人性视频| 久久视频在线播放| 日韩av影视综合网| 亚洲精品白浆高清久久久久久| 午夜精品一区二区三区在线视频| 日韩精品在线视频美女| 国产小视频91| 国产精品ⅴa在线观看h| 欧美性猛交xxxx免费看久久久| 欧美多人爱爱视频网站| 成人免费网站在线观看| 午夜精品一区二区三区在线视频| 亚洲欧美精品一区二区| 亚洲视频免费一区|