关于完成端口模型怎样检测客户端意外断线的问题

yishen 2005-12-05 11:03:25
本人使用完成端口实现了一个网络数据传输的程序,但是在传输的过程之中有的时候客户端意外断线,GetQueuedCompletionStatus不能检测到以外断线,GetQueuedCompletionStatus函数不返回任何值。大部分时候GetQueuedCompletionStatus函数可以检测到客户端的意外断线并返回。请问如何可以使完成端口可以检测到客户端的每次断线?
...全文
310 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yishen 2005-12-13
  • 打赏
  • 举报
回复
to dgvictor(victor):
谢谢,我已经下载完源码,准备阅读中。
对ACE不是很熟悉,唉!
dgvictor 2005-12-09
  • 打赏
  • 举报
回复
ACE 的Proactor模式中的WIN32_Proactor模式用的完成端口的实现的 ,你可以去看看它的源码,是可以检测到的
yishen 2005-12-09
  • 打赏
  • 举报
回复
确实,检查心跳是一个好的方法,但是我的这个服务器有可能同时有上千个客户端连接,如果每个客户端在传输数据的同时再开一个socket来发送心跳,那么服务器端就可能同时有上万个socket要处理了,这个开销有点大。有没有不用心跳的方法就可以检测到客户端的意外断线?
SmallBigCat 2005-12-09
  • 打赏
  • 举报
回复
定时检查客户端心跳包!
yishen 2005-12-05
  • 打赏
  • 举报
回复
超时定时器?何解?
oyljerry 2005-12-05
  • 打赏
  • 举报
回复
加个超时定时器来辅助

4,356

社区成员

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

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