服务端:

import java.net.\*;\\r\\nimport java.io.\*;\\r\\npublic class EchoThreadServer {\\r\\n public static void main( String args\[\] ) throws Exception       /\* 所有异常抛出 \*/\\r\\n {\\r\\n ServerSocket server = null;                         /\* 定义ServerSocket类 \*/\\r\\n Socket client = null;                         /\* 表示客 户端 \*/\\r\\n server = new ServerSocket( 8888 );                      /\* 服务器在8888端口上监听 \*/\\r\\n boolean f = true;                                       /\* 定义个标记位 \*/\\r\\n while ( f )\\r\\n {\\r\\n System.out.println( "服务器运行,等待客户端连接。" );\\r\\n client = server.accept();                       /\* 得到连接,程序进入到阻塞状态 \*/\\r\\n new Thread( new EchoThread( client ) ).start(); /\* 每一个客户端表示一个线程 \*/\\r\\n }\\r\\n server.close();\\r\\n }\\r\\n};

客户端:

import java.net.\*;\\r\\nimport java.io.\*;\\r\\npublic class EchoThread implements Runnable {\\r\\n private Socket client = null;\\r\\n public EchoThread( Socket client )\\r\\n {\\r\\n this.client = client;\\r\\n }\\r\\n\\r\\n\\r\\n public void run()\\r\\n {\\r\\n BufferedReader buf = null;                                 /\* 接收输入流 \*/\\r\\n PrintStream out = null;                                 /\* 打印流输出最方便 \*/\\r\\n try{\\r\\n out = new PrintStream( client.getOutputStream() );\\r\\n/\* 准备接收客户端的输入信息 \*/\\r\\n buf = new BufferedReader( new InputStreamReader( client.getInputStream() ) );\\r\\n boolean flag = true;                                    /\* 标志位,表示可以一直接收并回应信息 \*/\\r\\n while ( flag )\\r\\n {\\r\\n String str = buf.readLine();                    /\* 接收客户端发送的内容 \*/\\r\\n if ( str == null || "".equals( str ) )          /\* 表示没有内容 \*/\\r\\n {\\r\\n flag = false;                           /\* 退出循环 \*/\\r\\n }else{\\r\\n if ( "bye".equals( str ) )              /\* 如果输入的内容为bye表示结束 \*/\\r\\n {\\r\\n flag = false;\\r\\n }else{\\r\\n out.println( "ECHO : " + str ); /\* 回应信息 \*/\\r\\n }\\r\\n }\\r\\n }\\r\\n client.close();\\r\\n }catch ( Exception e ) {}\\r\\n }\\r\\n};