我有一个客户端/服务器程序,它允许通过从服务器生成的线程为多个客户端提供服务。目前该程序仅与服务器通信,但是我现在想重新设计该程序,以便客户端可以与另一个客户端建立通信。在设计这个方面,我没有太多经验知道正确的方向是什么。最初我考虑通过服务器线程进行通信,但是我不确定如何通知该线程的客户端另一个客户端想要建立通信。
例如,我想从 cli A 到 cli N 进行通信:
Cli A <---> SerThread A <------> Main Thread <------> SerThread N <---> Cli N
我不确定如何通知 Cli N 需要与 Cli A 通信。
在客户端从套接字读取之前,它不会知道另一个客户端想要与它通信。因此,如果 Cli N 处于等待用户输入直到它发送/接收它不会知道的状态。我需要一种方法来立即通知客户通信正在等待它。
我想得越多,我就越困惑,所以在我正确地尝试设计它之前,我可能需要一些指导。