这是TCP和UDP程序的良好行为吗?

时间:2014-09-19 16:40:47

标签: python tcp udp

我正在使用Python开发客户端 - 服务器游戏,每个量程,服务器都必须将游戏状态发送给客户端。

我用UDP和TCP连接开发了它。 UDP确保游戏状态的速度发送,TCP用于可靠性部分。

这是一个好方法吗?

因此每个量子服务器都会发送如下数据:

while playing:
    data = computeGameData()
    sendNewPlayUDP(data)
    sendNewPlayTCP(data)

    time.sleep(sleeptime)

我测试了它,它似乎运行良好,但我想知道线程是否可以因为TCP挣扎而阻塞。可能有更好的方法。

1 个答案:

答案 0 :(得分:1)

根据:

http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/

你根本不应该使用TCP。本文建议使用UDP并为您绝对想要接收和确认的数据包添加额外的逻辑。本文还指出TCP数据包可能会干扰UDP数据包,从而增加UDP数据包丢失率。

您也可以查看:

https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking

在许多情况下,可以容忍丢失数据包。在TCP和UDP通道上发送相同的数据看起来有点过分。