请教,关于winsock UDP编程。

null2002 2005-03-18 11:30:35
请问用一个循环中用recvfrom接收udp数据报时,如果正在处理接收到的数据的时候数据报到达而没有recvfrom,是否此数据报会丢失?
比如:
CreateThread(.....);

//下面这个函数传入CreateThread
void listenthread(void)
{
while(1)
{
recvfrom(...);
//下面是处理接收的语句
...
...//此时数据报到达,还能接收得到吗?还是会缓冲供下次recvfrom时接收?
}
}
...全文
63 点赞 收藏 4
写回复
4 条回复
sharkhuang 2005年03月18日
会缓存一定数量的!太大不行
回复 点赞
CMyMfc 2005年03月18日
下次recvfrom会收到
丢失包是在网络传输途中丢失的
而不是因为这个
可以实现超时重传确认机制, 发现丢包, 对方会重发
回复 点赞
YFY 2005年03月18日
读出来的应该不会丢,局域网也比较可靠。

不过在网络状况不好的地方发送的数据完不完整就不好说了。

还得自己加上层的校验数据是否完整。
回复 点赞
BluntBlade 2005年03月18日
如果系统数据缓冲区中的数据已经被读出,则数据报不会丢失。
反之,数据报被丢弃。
回复 点赞
发动态
发帖子
工具平台和程序库
创建于2007-09-28

8236

社区成员

2.7w+

社区内容

C/C++ 工具平台和程序库
社区公告
暂无公告