读书人

C++中关于UDP收发的,该如何处理

发布时间: 2013-09-28 10:01:20 作者: rapoo

C++中关于UDP收发的
在UDP中 发送端每次发送一个数 发送一百次,等到全部发完,接收端再一次将100个数取走,这可能吗?
[解决办法]
1.如果超过接收端的缓冲大小,则丢包会发生
2.包在网络中传输会发生丢包,所以你可能发了100个数,接到98个。
[解决办法]
udp是无连接不可靠传输协议
所以既保证不了能收到100个数,也保证不了收到的顺序。
所以使用udp协议一般需要在udp协议之上自己再封装一层。
[解决办法]
UDP不可能一次取完,如果没有发生丢包(现在的局域网丢包概率很小),会取100次,也就是说,sendto的调用次数与recvfrom是一样一样的
TCP的话就有可能send100次,只recv一次
[解决办法]
udp发送出去后!他就不会去管接收是否接受成功的!
是无连接不可靠的!丢包是很正常的!而且你也很难确保你分100次发送出去后,对方就只接受一次!除非你只接收一次!

读书人网 >C++

热点推荐