是否可以在两个软件之间建立TCP和UDP连接

时间:2014-07-27 19:28:54

标签: tcp udp

我目前正在使用客户端 - 服务器模型在python中开发高度响应的游戏。客户端和服务器之间的数据交换速度需要非常快。

是否可以同时建立udp和tcp连接? Udp只会在游戏中使用。并且Tcp将用于更多可靠性消息,如连接,名称更改,聊天,... 这也是一种好的思维方式吗?或者我应该只使用UDP?

3 个答案:

答案 0 :(得分:1)

您可以在不同的端口甚至on the same port上绑定UDP和TCP连接。至于使用哪个,取决于你。尝试两者,如果TCP太慢或UDP太不可靠,那么你总是可以选择切换。

答案 1 :(得分:1)

是的,这可能是一个好主意。使用UDP,单个丢失的数据包不会使整个流停顿。另一方面,您需要重试和拥塞控制。

我尝试使用UDP发送消息,如果在很短的时间内没有确认,则在已保持打开的TCP连接上重新发送它们。这应该将99%的负载转移到UDP并使用TCP进行拥塞控制和可靠性。

The H2O database does it that way.

答案 2 :(得分:0)

您还可以使用通过UDP构建可靠性层的第三方库,并指定每个数据包所需的可靠性。例如,您可以查看Raknet。