急,求助!在线等!使用完成端口,WSARecv收到的数据永远都是固定长度?

rabolee 2006-04-17 03:55:56
我投递进去的的BUF大小是8192

结果收到的永远是8192长,比如我客户端只发了1个字节过来,我收到的长度还是8192,只不过后面的8191都被填成0了。

这样的话,我发大文件的时候,就出现了很多0在中间,我才学习完成端口,不是很懂,求助!
...全文
176 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rabolee 2006-04-17
  • 打赏
  • 举报
回复
OK,搞定, 谢谢,就是那第二个参数,我取的是lpCompletionKey里面的len...
wanglei051 2006-04-17
  • 打赏
  • 举报
回复
你是用什么判断长短的?不会是用sizeof吧?建议你一次不要收那么长的数据,1次收100,然后连接到一起
gohappy_1999 2006-04-17
  • 打赏
  • 举报
回复
WSARecv收到的数据永远都是固定长度?
--------------------------------
不是的.取决于实际收到的数据长度。
BOOL GetQueuedCompletionStatus(
HANDLE CompletionPort,
LPDWORD lpNumberOfBytes,
PULONG_PTR lpCompletionKey,
LPOVERLAPPED* lpOverlapped,
DWORD dwMilliseconds
);
第二个参数是实际传输的字节数

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧