职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1521|回复: 1

完成端口 WSARecv 怎么控制接受字节数

[复制链接]
chenhong 发表于 2009-9-7 09:02 | 显示全部楼层 |阅读模式
WSARecv
WSABUF的len 是用来控制接收多少字节吗?
那假设这里 len 是50
但实际套接字上只有20字节数据
那么完成端口接收20个字节完成时完成端口就会返回的
GetQueuedCompletionStatus 的参数 lpNumberOfBytes 会告诉你一次接收动作实际接收了多少字节数.
如果len设置成20,但实际套接字上有50个字节的数据
将会是个什么情况呢?
问题补充:
如果接受不完整 WSARecv的返回值是0还是SOCKET_ERROR还是其他的?lpNumberOfBytesRecvd的值是多少呢?下次接受是从0开始还是从20开始呢?
fuxinxia 发表于 2009-9-7 09:02 | 显示全部楼层

完成端口 WSARecv 怎么控制接受字节数

还能怎么样 只能是接收不完整
下次接收时才能接收到剩下的部分
所以搞通讯的一般情况下都要先定协议
来保证数据的完整性和正确性

返回的是实际接收的字符个数
下次接收从字符串的下一个字符开始
比方说 对方传过来 “12345”第一次你接收到“123”
第二次就接收“45”了
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-7 04:55 , Processed in 0.124999 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表