我可以使用两个不同的线程在同一套接字上读写吗?

| 我正在为分配写一点东西,而且我必须管理主机之间的TCP连接。我的愿景最初是两个TCP连接,一个传入,一个传出,以及一个非常精细的协议来管理这些连接的创建和销毁。 因此,这是我希望可行的更简单的选择。一个插座,易于连接,易于破坏。一个线程将数据写入该套接字上的流,一个线程从同一套接字上的流读取。我在阻止方面没有问题,因此我不需要对任何东西使用nio。 我可以做到这一点吗?     
已邀请:
TCP套接字是全双工流,您可以从多个线程对其进行读写。这样做是否是一个好主意是一个完全不同的问题。     
如果只有写程序线程和只有一个读程序线程,则可能会导致代码更清晰,更简单。 希望通过该套接字进行通信的其他线程将通过一些队列将请求传递给编写器线程。类似地,阅读器将通过队列将传入消息分发到适当的线程。 此技术通常用于用户界面。     
据我所知套接字是线程安全的。仅当从一个线程在套接字上调用close()时,才应小心。第二个可能会挂在某个阻止功能上或无限选择。     
是的,你可以这么做。您可以有一个线程使用ServerSocket启动服务器,而另一个线程则通过Socket连接到该服务器。您可以在Google上搜索大量示例,以开始使用EchoServer / EchoClient。     

要回复问题请先登录注册