织梦CMS - 轻松建站从此开始!

罗索

今天刚处理了客户端非正常关闭服务器端得到的错误消息

jackyhwei 发布于 2010-09-03 14:25 点击:次 
客户端由于没有写完.进行了一下调试.发现服务器端完成端口的GetQueuedCompletionStatus发生错误.使用GetLastError返回了ERROR_NETNAME_DELETED(63)错误.
TAG:

客户端由于没有写完.进行了一下调试.发现服务器端完成端口的GetQueuedCompletionStatus发生错误.

使用GetLastError返回了ERROR_NETNAME_DELETED(63)错误.由于客户端没有友好关闭所造成的.或是由于内部链路段开或由于没有使用shutdown所造成.

在这里也作个记录.以防自己以后忘了.

-----
以下为收集的内容:


WSASend你只能得到WOULDBLOCK状态。发送失败,等价于客户端已经断开了连接。 

GetQueuedCompletionStatus的返回值如果等于ERROR_NETNAME_DELETED,则关闭此路连接。  

接收数据长度为0.
 
WSARecv的时候返回值SOCKET_ERROR,但ERROR_IO_PENDING  !=  WSAGetLastError 
WSASend的时候返回值SOCKET_ERROR,但ERROR_IO_PENDING  !=  WSAGetLastError 
这几个地方判断客户端是否已断开。

(firebird)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201009/10085.html]
本文出处:百度博客 作者:firebird
顶一下
(0)
0%
踩一下
(3)
100%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容