投递成功后但未完成的重叠操作如何取消掉?

saiyaman5 2011-03-24 05:03:42

如题,WSASend/WSARecv投递成功但未完成,这时由于某些原因我想取消掉,应该如何做,先closesocket(),然后再删除这两个函数锁定的缓冲区没问题吧?

...全文
83 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
哈利路亚1874 2011-03-24
  • 打赏
  • 举报
回复
我一般会维护一个未决链表,如果要取消掉,直接从链表中移去就行了
jwybobo2007 2011-03-24
  • 打赏
  • 举报
回复
可以的
stjay 2011-03-24
  • 打赏
  • 举报
回复
如果不再使用socket,可以closesocket
如继续使用socket,则用CancelIO,要在投递IO的线程里执行,具体看MSDN
最简单的就是全部线程执行CancelIO
fishion 2011-03-24
  • 打赏
  • 举报
回复
这样应该没什么问题
可以找一下网上一些成熟的例子来看看

18,363

社区成员

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

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