UDP丢包的问题(200分)

  • 主题发起人 主题发起人 xinhe
  • 开始时间 开始时间
X

xinhe

Unregistered / Unconfirmed
GUEST, unregistred user!
我在写一个网络程序,服务端使用了IdUdpServer。如果客户端一次连续发出的包比较少例如三四个,则没什么问题,如果有多个包例如十几个UDP包连续发给服务端,就只能收到七、八个,但是用Sniffer Pro却发现这十几个包全部收到了,似乎并不是物理上丢了包,而是在把数据转移给IdUdpServer的时候丢掉了,我后来又试了FastNet的UdpServer,结果是一样的。哪位高手指教一下。
 
用sendmessage();吧,这个不会丢包的
 
SendMessage和网络有什么关系?
 
UDP协议本身就是弱的广播协议(在底层也不校验),丢包是正常的,不丢包那就不是UDP协议了.
 
就是说UDP丢包不一定是在网络上丢的,在底层向上层传送的时候也有可能丢包吗?
 
可能我说的不太清楚,我在服务器端用Sniffer来监听,发现客户端发来的所有数据包都已经收到,但在我自己写的服务程序里却收不到,Sniffer和我的服务程序在同一台机器上。Sniffer在驱动程序一级,而我的服务程序在应用程序一级,这样的数据传递也会有问题吗?
 
找一个接受端用多线程接受的UDP源码即可。
 
IdUdpServer控件本身就支持多线程的,“ThreadedEvent”属性设成“True”就可以支持多线程了。我也怀疑过是不是这个控件有问题,所以自己也写了一个,结果一样。
 
后退
顶部