[socket通讯]UDP通讯丢包问题,求解决思路
手头项目,用C#写一个服务器程序,用来接收处理终端的数据报。单独开辟一个子线程接收数据报,采用socket方式阻塞式接收receivefrom方法。
在测试时候发现一个问题,当同一终端在极短时间内,比如几个毫秒或者更少时间间隔发送数据,会产生丢包现象,只接收那段时间间隔内的第一个数据报,之后的数据报都没有接收到。
这种情况,可能是因为阻塞式接收到一个数据报后,在处理数据时候没有再对端口进行扫描侦听,造成丢包。求教各位遇到这种情况时候如何解决。
当然,感觉一种方法是连接采用TCP方式,不过考虑到需要修改终端的固件软件,由于固件方面的限制非常大,改起来有很大难度,所以这种方法暂时搁置。
最好还是在软件方面可以做进一步的改进,求各路大侠给个解决思路。
------解决方案--------------------