日期:2014-05-20 浏览次数:20746 次
import java.net.* ; import java.io.* ; public class EchoServer{ public static void main(String args[]) throws Exception { // 所有异常抛出 ServerSocket server = null ; // 定义ServerSocket类 Socket client = null ; // 表示客 户端 BufferedReader buf = null ; // 接收输入流 PrintStream out = null ; // 打印流输出最方便 server = new ServerSocket(8888) ; // 服务器在8888端口上监听 boolean f = true ; // 定义个标记位 while(f){ System.out.println("服务器运行,等待客户端连接。") ; client = server.accept() ; // 得到连接,程序进入到阻塞状态 out = new PrintStream(client.getOutputStream()) ; // 准备接收客户端的输入信息 buf = new BufferedReader(new InputStreamReader(client.getInputStream())) ; boolean flag = true ; // 标志位,表示可以一直接收并回应信息 while(flag){ String str = buf.readLine() ; // 接收客户端发送的内容 if(str==null||"".equals(str)){ // 表示没有内容 flag = false ; // 退出循环 }else{ if("bye".equals(str)){ // 如果输入的内容为bye表示结束 flag = false ; }else{ out.println("ECHO : " + str) ; // 回应信息 } } } client.close() ; } server.close() ; } };
import java.net.* ; import java.io.* ; public class EchoClient{ public static void main(String args[]) throws Exception { // 所有异常抛出 Socket client = null ; // 表示客 户端 client = new Socket("localhost",8888) ; BufferedReader buf = null ; // 一次性接收完成 PrintStream out = null ; // 发送数据 BufferedReader input = null ; // 接收键盘数据 input = new BufferedReader(new InputStreamReader(System.in)) ; buf = new BufferedReader(new InputStreamReader(client.getInputStream())) ; [color=#FF0000]out = new PrintStream(client.getOutputStream()) ;[/color] boolean flag = true ; // 定义标志位 while(flag){ System.out.print("输入信息:") ; String str = input.readLine() ; // 接收键盘的输入信息 out.println(str) ; if("bye".equals(str)){ flag = false ; }else{ String echo = buf.readLine() ; // 接收返回结果 System.out.println(echo) ; // 输出回应信息 } } buf.close() ; client.close() ; } };