这是UDP协议的丢包吗?丢的这么厉害?
我用UDP协议把一个1M的文件从服务器传送到客户端。我把它分成2000个大小为500字节左右的小包。在服务器端用for循环发送。然后客户端用for循环接收。
服务器端的udp套接字为非阻塞方式,接收端的udp套接字为阻塞方式。
同时我把服务器和客户端的发送缓冲区和接收缓冲区大小均设为10M以上。
经调试发现:服务器那里,2000个包一个就发完了,没有发生错误。
可是接收端,却一直停在接收循环里,进一步测试发现,收到400多个包,就收不到了。就停在循环里的recvfrom语句里(阻塞方式)。
查看已经收到的400多个包,从序号上看,序号从1到260,还有600多到700多,序号超过1000的只有一个包。
我想问的是:这是丢包造成的吗?如果是,那为什么丢包这么严重?丢了百分之七八十啊!
如果不是,那是什么原因造成的?