我有一个使用ServerSocket / Socket的java客户端/服务器程序。
在我的客户端,我有一个线程(在ReceiverThread中调用),它始终等待来自服务器的传入消息。所以它会阻止我的InputReader(myInputReader.readObject()
)。
在客户端中,还有一些线程,它们将一些东西发送到服务器并等待使用(myInputReader.readObject()
),直到服务器响应。但在这种情况下,如果服务器发送响应,则ReceiverThread有可能捕获服务器响应,这不是我想要的。
有没有办法在一个Socket连接中拥有多个InputStream?
更新:我必须使用java Socket
答案 0 :(得分:1)
同时在2个(或更多个)不同线程中监听套接字是没有意义的。你需要做的是有一个单一的入口点"对于传入数据,并让该入口点理解每个数据块(消息)的上下文,并将其传播到代码的逻辑和平使用它。这是一般设计模式,而不是java问题。