我有以下TCP客户端-服务器通信结构:
看起来我需要从另一个线程关闭工作套接字,对吗?为此,套接字应该成为公共字段,或者应该提供一个方法在工作线程中关闭它。这样做好吗?还是我的整个设计有缺陷?
- 在服务器启动时,服务器启动接受器线程,该线程接受客户端连接并将ServerSocket传递给它。
- 当客户端连接到达时,接受器线程在ServerSocket上调用accept()并将客户端套接字提交给工作线程(通过执行器/线程池),然后提供客户端套接字。
- 工作线程循环从客户端套接字流中读取数据,处理并发送回复。
看起来我需要从另一个线程关闭工作套接字,对吗?为此,套接字应该成为公共字段,或者应该提供一个方法在工作线程中关闭它。这样做好吗?还是我的整个设计有缺陷?