【发布时间】:2011-11-21 04:27:22
【问题描述】:
我需要帮助来构思一个客户可以与所有其他客户联系和交流的设计。我认为每个客户端同时需要一个 ServerSocket 来侦听来自其他客户端的传入连接,以及一个用于启动与其他客户端的连接的 Socket。
我在 localhost 上进行测试,所以如果我使用端口号来跟踪连接,我会遇到这种情况:
Socket A (OS assigned port: a) initiates connection with ServerSocket B (known port: 2222)
Both clients record that connection (a, 2222) is made
Socket B (OS assigned port: b) initiates connection with ServerSocket A (known port: 1111)
Both clients record that connection (b, 1111) is made
我们应该每对客户端有 1 个连接,所以上面是浪费的。这就是为什么我正在考虑自己设置本地端口的原因:场景将更改为连接(1111,2222)和(2222,1111),并且由于第二个相同,因此不会保留。
这听起来合理吗?
【问题讨论】: