使用UDP时,路由器无响应

时间:2012-03-06 17:22:08

标签: network-programming udp router

我正在开发一款多人游戏。原理很简单,两个玩家中的每一个每隔50毫秒定期发送512个字节。

问题在于,大约每20-30秒,玩家会停止接收有时一个但有时甚至长达20秒的数据(尽管发送没有被中断)。

起初我认为这是由于我用于调试的远程PC侧面或侧面的网络连接速度慢造成的。

但后来我注意到,当游戏停止接收数据时,我身边的所有网络流量都会减慢。

所以我开始ping <my-local-router>这就是它给我看的:

When the game isn't running:
...
64 bytes from 192.168.1.1: icmp_req=4520 ttl=64 time=4.89 ms
64 bytes from 192.168.1.1: icmp_req=4521 ttl=64 time=7.96 ms
64 bytes from 192.168.1.1: icmp_req=4522 ttl=64 time=10.5 ms
64 bytes from 192.168.1.1: icmp_req=4523 ttl=64 time=7.21 ms
64 bytes from 192.168.1.1: icmp_req=4524 ttl=64 time=8.10 ms
64 bytes from 192.168.1.1: icmp_req=4525 ttl=64 time=3.37 ms
64 bytes from 192.168.1.1: icmp_req=4526 ttl=64 time=5.12 ms
64 bytes from 192.168.1.1: icmp_req=4527 ttl=64 time=3.29 ms
...
When the game is running:
...
64 bytes from 192.168.1.1: icmp_req=47 ttl=64 time=6.99 ms
64 bytes from 192.168.1.1: icmp_req=48 ttl=64 time=1.69 ms
64 bytes from 192.168.1.1: icmp_req=49 ttl=64 time=2.60 ms
64 bytes from 192.168.1.1: icmp_req=50 ttl=64 time=2.88 ms
64 bytes from 192.168.1.1: icmp_req=52 ttl=64 time=9210 ms
64 bytes from 192.168.1.1: icmp_req=53 ttl=64 time=17144 ms
64 bytes from 192.168.1.1: icmp_req=54 ttl=64 time=16214 ms
64 bytes from 192.168.1.1: icmp_req=55 ttl=64 time=15372 ms
64 bytes from 192.168.1.1: icmp_req=56 ttl=64 time=14482 ms
64 bytes from 192.168.1.1: icmp_req=57 ttl=64 time=13486 ms
64 bytes from 192.168.1.1: icmp_req=58 ttl=64 time=12511 ms
64 bytes from 192.168.1.1: icmp_req=59 ttl=64 time=11546 ms
64 bytes from 192.168.1.1: icmp_req=60 ttl=64 time=10591 ms
64 bytes from 192.168.1.1: icmp_req=61 ttl=64 time=9626 ms
64 bytes from 192.168.1.1: icmp_req=62 ttl=64 time=1.34 ms
64 bytes from 192.168.1.1: icmp_req=63 ttl=64 time=3.33 ms
...

似乎游戏导致路由器无响应。

我的本​​地PC上没有任何P2P运行,但这听起来并不相关,因为我没有在游戏运行时遇到慢速反击。

我是UDP编程的新手,我对此毫无头绪,特别是因为每50ms 512字节对我来说似乎是一个很小的带宽(当我运行P2P时,它很容易运行1.5MB / s)。

1 个答案:

答案 0 :(得分:0)

这可能是我的路由器在我的无线驱动程序中死亡并需要更换或有些可疑的东西,因为即使在应用程序没有运行的时候,我也注意到最近有更多的网络冻结。