socket编程 这是我client端的代码 主要输出这两个字节 那如何在服务端接收呢?要用线程。

2025-01-01 22:32:15
推荐回答(1个)
回答1:

public class Server {
public static void main (String args[]) throws IOException{
int port = 45555;
ServerSocket server = new ServerSocket(port);
while(true){
Socket socket = server.accept();
//为每一个socket新建一个线程
new Thread(new Task(socket)).start();
}
}
//内部线程类
static class Task implements Runnable{
private Socket socket;
public Task(Socket socket){
this.socket=socket;
}
public void run(){
try{
handleSocket();
}catch(Exception e){
e.printStackTrace();
}
}
//与客户端通信部分
private void handleSocket() throws Exception{
//接收客户端信息
BufferedReader br =new BufferedReader( new InputStreamReader(socket.getInputStream(),"GBK"));
StringBuilder sb = new StringBuilder();
String temp;
int index;
while((temp=br.readLine())!=null){
if((index=temp.indexOf("\n"))!=-1){
sb.append(temp.substring(0,index-1));
break;
}
sb.append(temp);
}
System.out.println("client says:"+sb);
writer.close();
br.close();
socket.close();
}
}
}这是我之前的练习代码,不是针对你这个问题的,不过你对照着改一下就可以用了。