刚刚实现了两客户端通信(linux下tcp协议),实现思路很简单,就是一个客户端发个消息,服务端先read到然后再write到另一个客户端,这样就行了。
仔细思考后,有个疑问,可不可以服务端不read,直接让另一个客户端去read,这样服务端的负担不就减轻了么。
刚接触tcp通信,求指导。给个思路或者直接丢个代码。
刚刚实现了两客户端通信(linux下tcp协议),实现思路很简单,就是一个客户端发个消息,服务端先read到然后再write到另一个客户端,这样就行了。
仔细思考后,有个疑问,可不可以服务端不read,直接让另一个客户端去read,这样服务端的负担不就减轻了么。
刚接触tcp通信,求指导。给个思路或者直接丢个代码。
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答800 阅读✓ 已解决
2 回答3.2k 阅读
这取决于两客户端的网络连接,分三种情况
前面两种均可实现两个客户端直连,第三种则视 NAT 设备能否预测端口而定,大部分也都可以直连。
想要了解更多技术细节,请搜索 "tcp traversal", "tcp hole punching", "nat traversal", "TCP 打洞" 等关键词。
参考资料