您的位置:首页 > 编程语言 > Java开发

一个简单的Echo Server的Java实现(增强版)

2007-06-13 15:53 573 查看
Server:


package midi.socket;




import java.io.IOException;


import java.net.ServerSocket;


import java.net.Socket;






public class PowerEchoServer ...{






/** *//**


* @param args


*/




public static void main(String[] args) ...{




try ...{


ServerSocket server = new ServerSocket(10000);


System.out.println("Echo Server started!");




while (true) ...{


Socket socket = server.accept();


System.out.println("a new comer!");


Runnable r = new EchoHandlerThread(socket, 10000);


Thread t = new Thread(r);


t.start();


}




} catch (IOException e) ...{


e.printStackTrace();


}




}




}



处理线程:


package midi.socket;




import java.io.BufferedReader;


import java.io.IOException;


import java.io.InputStream;


import java.io.InputStreamReader;


import java.io.OutputStream;


import java.io.PrintWriter;


import java.net.Socket;






public class EchoHandlerThread implements Runnable ...{




Socket socket = null;


int port = 0;




public EchoHandlerThread(Socket socket, int port) ...{


this.socket = socket;


this.port = port;


}




public void run() ...{




try ...{


InputStream inStream = socket.getInputStream();


OutputStream outStream = socket.getOutputStream();




BufferedReader br = new BufferedReader(new InputStreamReader(inStream));


PrintWriter pw = new PrintWriter(outStream);




pw.write("Welcome ");


pw.write("Type BYE to exit! ");


pw.flush();


boolean done = false;


String line = null;




while(!done && (line=br.readLine())!=null) ...{


pw.write("Echo:"+line+" ");


pw.flush();


if(line.trim().equalsIgnoreCase("bye"))


done=true;


}




} catch (IOException e) ...{


e.printStackTrace();


}




finally ...{




try ...{


socket.close();




} catch (IOException e) ...{


e.printStackTrace();


}


}




}




}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: