基类是CAsyncSocket,通过internet发送UDP数据,一次32k,最后一个不足的数据包也可以收到。
数据肯定发出,而且本机也接收到了,只是OnRecieve没有接收到,FD_READ已经设置。
是否ip分片会影响?如何解决呢?

解决方案 »

  1.   

    丢包可能的原因及办法:
    1. 应用程序本身有问题,解决办法是,你应该先在局域网测试通过了再上公网。2. 公网对UDP数据传送的可靠性问题,UDP是不保证可靠性的,因此在局域网测试没问题的UDP通信,在公网上就可能有问题。解决办法是,增加UDP传送的可靠性机制或使用TCP
      

  2.   

    1、局域网测试正常
    2、如果每次发送数据1k,也是正常的抓包看,机器收到了。不过对于32k,数据是ip分片的。
      

  3.   

    对UDP,可以将包设置小些,减少因其它因素造成的数据失。可设置为1K。