1

嘿伙计们,我需要人们猜测解决方案:(。

我正在使用 UDP 套接字,我正在做的是发送大约 8、4 或任何字节的播放器输入。我正在使用 recvfrom 和 sendto。它工作几分钟,然后随机锁定。然而,这可能是因为我的应用程序逻辑,但我想知道是否有人对此有经验,这是一个 UDP/网络问题。我的代码在这里http://www.pastie.org/486583但我主要想知道我可以根据您的经验来解决这个问题。

4

4 回答 4

2

使用 Wireshark 找出失败的一方。

是发件人不发吗?

还是接收方没有收到?

于 2009-05-22T17:07:53.660 回答
0

锁定是什么意思,谁被锁定。您还没有检查“recvfrom”和“sendto”系统调用的返回值。您是否尝试过运行 Wireshark 来观察行为。

于 2009-05-22T17:22:52.313 回答
0

您的 GetInput() 函数是否期望 sendTo 和 recvFrom 始终完成?UDP 不保证发送或接收您的消息,也不保证消息到达的顺序。我认为您的超时也设置为无穷大,所以每隔一段时间就会发生一次消息失败,您会无限期地等待已经丢失的消息。

于 2009-05-22T17:10:39.973 回答
0

“锁定”是什么意思?

请注意,允许网络丢失(丢弃)UDP 数据包:您的协议应该允许偶尔丢失一些数据包,或者愿意重新传输。

于 2009-05-22T17:10:40.707 回答