WSAAsyncSelect()使用方法

firefly3233 2011-12-08 03:56:18
在基于TCP的客户端,用WSAAsyncSelect()来读取数据。

WSAAsyncSelect(socket, m_hWnd, WM_RECVDATA, FD_READ|FD_CLOSE);

并做了事件响应函数,在函数中用recv来接收数据。
1、接收完一次数据后,是不是还需要再调用:WSAAsyncSelect(socket, m_hWnd, WM_RECVDATA, FD_READ|FD_CLOSE);
2、如何得知收到的数据大小?如果一次读不完怎么办?
...全文
144 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
firefly3233 2011-12-11
  • 打赏
  • 举报
回复
1、测试结果,不需要重复调用
2、recv不能预先知道接收数据的大小,需在数据上做长度标记等措施来解决。
用户 昵称 2011-12-08
  • 打赏
  • 举报
回复
1)俺使用库函数select,每次接收之前都会调用select,wsaselect俺没用过,估计也要每次调用。
2)recv函数可以得到接收数据的大小,要想知道数据是否接收完全,还是需要一些额外的协议。
Gloveing 2011-12-08
  • 打赏
  • 举报
回复
一次send发送的数据,有时候recv需要接收几次

18,356

社区成员

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

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