日期:2014-05-18  浏览次数:20806 次

[socket通讯]UDP通讯丢包问题,求解决思路
 
手头项目,用C#写一个服务器程序,用来接收处理终端的数据报。单独开辟一个子线程接收数据报,采用socket方式阻塞式接收receivefrom方法。

  在测试时候发现一个问题,当同一终端在极短时间内,比如几个毫秒或者更少时间间隔发送数据,会产生丢包现象,只接收那段时间间隔内的第一个数据报,之后的数据报都没有接收到。

  这种情况,可能是因为阻塞式接收到一个数据报后,在处理数据时候没有再对端口进行扫描侦听,造成丢包。求教各位遇到这种情况时候如何解决。
   
  当然,感觉一种方法是连接采用TCP方式,不过考虑到需要修改终端的固件软件,由于固件方面的限制非常大,改起来有很大难度,所以这种方法暂时搁置。

  最好还是在软件方面可以做进一步的改进,求各路大侠给个解决思路。


------解决方案--------------------
探讨
.....在处理数据时候没有再对端口进行扫描侦听,造成丢包......