但是除此之外,如果您不快速读取数据包,则增加接收缓冲区的大小只会延迟数据包再次丢弃的时间.
通常情况下,您需要两个线程.
第一个线程仅用于为套接字提供服务.换句话说,线程的唯一目的是从套接字读取数据包,将其添加到某种正确同步的共享数据结构中,表示已经接收到数据包,然后读取下一个数据包.
存在第二个线程来处理接收到的数据包.它处于空闲状态,直到第一个线程信号已经接收到一个数据包.然后从正确同步的共享数据结构中提取数据包并对其进行处理.然后等待再次发出信号.
作为测试,尝试对数据包的完整处理进行短路,并在每次接收到数据包时向控制台(或文件)写入消息.如果您可以成功地执行此 *** 作而不丢弃数据包,那么将功能打破为“接收”线程和“处理”线程将有所帮助.
总结以上是内存溢出为你收集整理的Winsock UDP数据包被丢弃?全部内容,希望文章能够帮你解决Winsock UDP数据包被丢弃?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)