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

stick77 2004-05-05 12:11:23
用完成端口与客户端进行通信,服务器端调用WSARecv或WSASend之后,如果客户没有接收发送数据或者断开连接,GetQueuedCompletionStatus会一止等下去,这时怎样在不关闭Socket句柄的条件下,取消前面的读写操作。
...全文
70 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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就可以解决
  • 打赏
  • 举报
回复
相关推荐
发帖
通信技术
加入

4144

社区成员

通信技术相关讨论
申请成为版主
帖子事件
创建了帖子
2004-05-05 12:11
社区公告
暂无公告