在完成端口下,如何取消一个异步操作?

stick77 2004-05-05 12:11:23
用完成端口与客户端进行通信,服务器端调用WSARecv或WSASend之后,如果客户没有接收发送数据或者断开连接,GetQueuedCompletionStatus会一止等下去,这时怎样在不关闭Socket句柄的条件下,取消前面的读写操作。
...全文
123 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
stick77 2004-06-15
  • 打赏
  • 举报
回复
好像大家都没有看清楚我问的问题
大脚板 2004-06-15
  • 打赏
  • 举报
回复
一般都用PostQueuedCompletionStatus来实现
stick77 2004-05-13
  • 打赏
  • 举报
回复
up
GeorgeHunter 2004-05-08
  • 打赏
  • 举报
回复
需要你自己记录某个Socket对应的CompletionPort的HANDLE,所以只能一切自己来:-(
stick77 2004-05-08
  • 打赏
  • 举报
回复
to GeorgeHunter()
能说详细点吗?
BOOL PostQueuedCompletionStatus(

HANDLE CompletionPort, // handle to an I/O completion port
DWORD dwNumberOfBytesTransferred, // value to return via
// GetQueuedCompletionStatus'
// lpNumberOfBytesTranferred
DWORD dwCompletionKey, // value to return via
// GetQueuedCompletionStatus'
// lpCompletionKey
LPOVERLAPPED lpOverlapped // value to return via
// GetQueuedCompletionStatus' lpOverlapped
);

PostQueuedCompletionStatus中没有socket句柄参数呀,怎么能取消某个Socket的操作呢?
可能是我没有把问题描述清楚,我的目的是要在Socket都写事件完成之前,取消操作。
GeorgeHunter 2004-05-05
  • 打赏
  • 举报
回复
调用PostQueuedCompletionStatus就可以解决

4,387

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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