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);//输出异常
}
}
}
java socket通信代码3
最新推荐文章于 2024-08-05 16:41:06 发布