首页 新闻 会员 周边

C#使用UDP的问题

0
悬赏园豆:50 [已关闭问题]

我用C#做个网络程序,用的UDP

在两个都是校园网的情况下,非常流畅,我一个包7、8K的,一秒10个也不会有问题。

但是在宽带+宽带或者宽带+校园网的情况下,就郁闷了,大概超过2K左右的包,100%收不到,注意是100%,不是简单的丢包。

我想是不是网关或者防火墙把大包给拦截了呢?不应该吧,因为用QQ传文件的时候也可以有几十K速度,说明带宽利用率相当高了,虽然我没探索过它包有多大,但是我想肯定在2K以上。

另一方面考虑,.Net Class Library的UdpClient应该会在底层做一些拆包组包的操作吧。

我想这个不是简单的丢包吧,100%这个比例非常吓人。

现在这个问题就把我难住了。请问这可能会是什么原因,我又应该怎么做呢?

JimLiu的主页 JimLiu | 菜鸟二级 | 园豆:300
提问于:2009-10-31 23:51
< >
分享
其他回答(1)
0

没代码只能猜,看看是不是buffer设置过小,包顺序有没有验证重发机制。

不要用你自己的程序跟QQ那个比,人家还有续传和离线传送等等,不是一个层面。

风海迷沙 | 园豆:4453 (老鸟四级) | 2009-11-01 13:30
不是这样了,只是包的确过大,被线路上某些关卡给截住了。我今天拆包了,就没问题了。 虽然我相信不论是协议还是.NET类库都会做拆包的工作,但是也许在链路某一处,包被重组了之后,因为过大,被拦截了。 比如: 发送-拆包-传输-组包-过大拦截-客户端没收到 呃啊。。网络真麻烦。
支持(0) 反对(0) JimLiu | 园豆:300 (菜鸟二级) | 2009-11-01 20:35
0

看样子是buffer太小

紫色永恒 | 园豆:844 (小虾三级) | 2009-11-01 14:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册