c# IOCP客户端连接无法释放

nigel19830616 2013-09-27 10:25:54
使用SocketAsyncEventArgs(IOCP完成端口)做socket服务器软件,客户端成功连接到服务器后,人工将客户端的网线断掉,使用连接监视软件发现服务器对该客户端的状态一直显示为连接,客户端对应的SocketAsyncEventArgs对象的completed事件没有任何响应(等了几个小时),以至连接无法释放,不知如何处理!哪位大神能告诉我怎么办,谢谢!
...全文
153 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nigel19830616 2013-09-30
  • 打赏
  • 举报
回复
哦,差点忘了,帖子先结掉,不好意思!
nigel19830616 2013-09-30
  • 打赏
  • 举报
回复
律师原来也喜爱权贵 大神,再请教一个问题。web Service 与 windows服务交互(iis和该windows服务在或不在同一台服务器上),哪种方法比较可靠。(诸如:ipc、remoting、wcf等等)。小弟也是大致网上乱逛一通,没这方面经验,在此先谢过!
  • 打赏
  • 举报
回复
或者可以反过来约定,客户端2分钟内至少有一个消息发来(至少有一个心跳消息),否则2分钟后其连接就被服务器主动关闭了。
  • 打赏
  • 举报
回复
服务器在一分钟之后可以给客户端发一个心跳消息。
nigel19830616 2013-09-27
  • 打赏
  • 举报
回复
另:有试过通过该客户端对应SocketAsyncEventArgs.AcceptSocket直接关闭socket,此时Completed事件有响应, socketErr==OperationAborted,并且能够清除连接.真是搞不懂,难道SocketAsyncEventArgs没有类似于发送或接收超时值的东东.

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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