【发布时间】:2012-02-18 18:47:34
【问题描述】:
我正在使用 Java ServerSocket 实现一个服务器,并有两个客户端连接,每个客户端都来自不同的线程。一个向服务器发送消息,一个从服务器读取消息。他们都在同一个端口上联系服务器,那么我如何区分一个想要读取的客户端和一个想要写入的客户端?
ServerSocket ss = new ServerSocket(port);
while (true) {
Socket cs = ss.accept();
BufferedReader r = new BufferedReader(new InputStreamReader(cs.getInputStream()));
String message = r.readLine();
System.out.println("message");
DataOutputStream os = new DataOutputStream(cs.getOutputStream());
String send = "send";
os.writeBytes(send);
}
最后一个 writeBytes 会导致问题,因为连接以便向服务器发送消息的客户端已经关闭了连接。同样,想要从服务器接收的客户端不会在套接字的输入流上提交任何内容
【问题讨论】: