我用C#做个网络程序,用的UDP
在两个都是校园网的情况下,非常流畅,我一个包7、8K的,一秒10个也不会有问题。
但是在宽带+宽带或者宽带+校园网的情况下,就郁闷了,大概超过2K左右的包,100%收不到,注意是100%,不是简单的丢包。
我想是不是网关或者防火墙把大包给拦截了呢?不应该吧,因为用QQ传文件的时候也可以有几十K速度,说明带宽利用率相当高了,虽然我没探索过它包有多大,但是我想肯定在2K以上。
另一方面考虑,.Net Class Library的UdpClient应该会在底层做一些拆包组包的操作吧。
我想这个不是简单的丢包吧,100%这个比例非常吓人。
现在这个问题就把我难住了。请问这可能会是什么原因,我又应该怎么做呢?
没代码只能猜,看看是不是buffer设置过小,包顺序有没有验证重发机制。
不要用你自己的程序跟QQ那个比,人家还有续传和离线传送等等,不是一个层面。
看样子是buffer太小