package implement;//包定义 import java.io.*; import java.net.*; public class ServerThread extends Thread{//继承Thread类,实现多线程 Socket socket=null; //保存与本线程相关的Socket对象; int clientnum; //保存本进程的客户计数 /*构造方法 */ public ServerThread(Socket socket,int num){ this.socket =socket; clientnum=num+1; } public void run(){//线程主体 try{ String line; BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream())); //由Socket对象得到输入流,并构造相应的BufferedReader对象,用于从client接受信息 PrintWriter os=new PrintWriter(socket.getOutputStream()); //由Socket对象得到输出流,并构造相应的BufferedReader对象;用于向client发送信息 BufferedReader sin=new BufferedReader(new InputStreamReader(System.in)); //由系统标准输入设备构造BufferedReader 对象 System.out.println("Client:"+clientnum+" "+is.readLine()); line=sin.readLine(); //从键盘读入一字符串 while(!line.equals("bye")){ os.println(line); //向客户端输出改字符串 os.flush(); //刷新输出流,使client马上接收到该字符 System.out.println("Server:"+line); //在Server上显示输入字符串 System.out.println("Client:"+clientnum+is.readLine()); //从client读入一个字符串,并打印到标准输出上 line=sin.readLine(); } os.close(); is.close(); socket.close(); //serverSocket.close(); }catch(Exception e){ System.out.println("Error:"+e);//输出异常 } } }