Networking UDP是如何工作的?网络游戏中的例子

Networking UDP是如何工作的?网络游戏中的例子,networking,udp,Networking,Udp,所以我读了这里的帖子:我有点困惑,所以这里是我的补充问题: UDP如何处理丢失的数据?因为它说UDP不关心数据是否会到达目的地或者数据的顺序 例如,在一个在线游戏中,UDP如何处理数据丢失?我的理解是,当数据丢失时,比如说在在线游戏中看不到我的角色的手?或者我耕种多年的azinoth的战地消失了?哈哈 如果顺序不重要,那么让我们假设我的角色的头部会被弄乱或者身体会脱臼,诸如此类 有人能帮我澄清一下吗?游戏中UDP的一个更好的例子是位置信息 在这种情况下,字符的位置每秒发送几次,一个数据包是否丢失

所以我读了这里的帖子:我有点困惑,所以这里是我的补充问题:

UDP如何处理丢失的数据?因为它说UDP不关心数据是否会到达目的地或者数据的顺序

例如,在一个在线游戏中,UDP如何处理数据丢失?我的理解是,当数据丢失时,比如说在在线游戏中看不到我的角色的手?或者我耕种多年的azinoth的战地消失了?哈哈

如果顺序不重要,那么让我们假设我的角色的头部会被弄乱或者身体会脱臼,诸如此类


有人能帮我澄清一下吗?

游戏中UDP的一个更好的例子是位置信息

在这种情况下,字符的位置每秒发送几次,一个数据包是否丢失并不重要,因为另一个数据包很快会再次发送。当你把它和一个游戏引擎结合起来进行某种程度的插值和外推时,你就可以从零散的数据中获得平滑的运动

在重新排序的情况下,如果您收到由于数据包重新排序而导致的字符位置较旧(在时间上),您只需丢弃它,因为您已经获得了一个较新的值

以您的loot示例为例,该信息可能通过TCP或使用UDP的可靠包装发送到您的客户机


看看C#UDP网络库,它是为游戏而设计的。它通过UDP提供了各种不可靠和可靠的通道,应该可以让您了解UDP在游戏中的典型使用方式。

正如您在参考文章中提到的,UDP除了发送数据包之外,不关心其他任何事情。它不处理订单,也不处理他们是否到达。。。它只发送数据包。如果一个数据包在某个地方丢失了,那么在接收端它就好像从未被发送过一样。如果您需要处理丢失的数据包,则必须使用TCP或使用UDP实现您自己的处理—例如,将包含接收数据包的信息的数据包发送回。但是我相信这个问题是离题的,因为引用的问题也是。哦,我明白了。“不在乎包是否被发送”在在线游戏中被称为
lag
?我说得对吗?