单个Socket的多个InputReader

时间:2015-05-17 11:21:52

标签: java multithreading sockets

我有一个使用ServerSocket / Socket的java客户端/服务器程序。

在我的客户端,我有一个线程(在ReceiverThread中调用),它始终等待来自服务器的传入消息。所以它会阻止我的InputReader(myInputReader.readObject())。

在客户端中,还有一些线程,它们将一些东西发送到服务器并等待使用(myInputReader.readObject()),直到服务器响应。但在这种情况下,如果服务器发送响应,则ReceiverThread有可能捕获服务器响应,这不是我想要的。

有没有办法在一个Socket连接中拥有多个InputStream?

更新:我必须使用java Socket

1 个答案:

答案 0 :(得分:1)

同时在2个(或更多个)不同线程中监听套接字是没有意义的。你需要做的是有一个单一的入口点"对于传入数据,并让该入口点理解每个数据块(消息)的上下文,并将其传播到代码的逻辑和平使用它。这是一般设计模式,而不是java问题。