同一个完成端口上投递WSA_SEND和WSA_RECV,是否需要两份数据区?

白虹李李 2010-10-10 11:24:32
如题。
在写一个完成端口的东东,服务端ACCEPT后,将SOCKET绑定到完成端口上了。并且可以正常的一直WSA_RECV。

WSARecv(socket,&DataBuf,1,&RecvBytes,&Flags,&Overlapped,NULL);


可是如果我还想在这个完成端口上投递WSA_SEND,是否可以使用另外的一份缓冲区?
我的理解是应该使用另外的缓冲区,不能使用这个SOCKET用来RECV的那份Overlapped结构。

不知道是不是这样的?

...全文
73 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
奉海 2010-10-11
  • 打赏
  • 举报
回复
#1楼正解
xgPaul 2010-10-11
  • 打赏
  • 举报
回复
需要使用另一份缓冲区,每投递一个I/O请求都要对应一个独立的缓冲区。。。
teleinfor 2010-10-10
  • 打赏
  • 举报
回复
如果RCV/REC是异步并发的,那么就需要有各自的buffer,PER_OPERATOR_DATA。如果两个动作是同步的有时序的,不会并发执行那么就可以使用同一个buffer的PER_OPERATOR_DATA了。

18,356

社区成员

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

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