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

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

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

有什么办法可以在单个Socket连接中具有多个InputStream?

更新:我必须使用java套接字

===============>>#1 票数:1 已采纳

同时在2个(或更多)不同线程中监听套接字是没有意义的。 您需要做的是为传入的数据提供一个“入口点”,并使该入口点了解每个数据块(消息)的上下文,并将其传播到逻辑上和平使用它的地方。 这是一种常规设计模式,而不是Java问题。

  ask by behzad translate from so

未解决问题?本站智能推荐: