我们将开发一款支持互联网多人游戏的游戏。因为它是一个互动游戏,我知道我必须使用UDP来减少连接延迟,但我想知道使用UDP连接提供的包中可能出现的错误是什么?在我看到的任何地方,他们都说UDP提供“尽力交付”,但没有人能给出完整的解释是什么意思。看完一篇文章后,我还有两个问题:
recv
来电?对于我们的游戏,我认为我们需要每秒发送大约20个字节的4个包。
答案 0 :(得分:2)
最常见的事情是:一方发送消息,另一方什么都不接收。
是否可以发送包并在另一方接收部分包 连接结束?
不是真的,即使消息很大而且它变得支离破碎也没有。与TCP
不同,在UDP
中,每封邮件都是独立的。你要么完全得到它,要么一无所获。
那么你应该只做recvfrom
循环中的事情并处理它们。显然,您应该使您的应用程序不受消息丢失的影响,以便丢失的消息不会使其崩溃。