socket 10053错误

victor_cui 2009-02-25 04:10:07
最近遇到一个奇怪的问题,就是我建立了一个连接在上面收发数据,然后拔出网线立即插回,我的应用会重连成功,在上面收发数据,但是持续了三四秒以后,这个重连成功的连接上发生了10053错误,我不得不再次重连,这次成功后再没有出现这个错误,连接一直可用
我抓包发现,这个中间那次失败的连接开始成功后收发正常,但是过了一会儿,客户端不在发任何ACK到server,然后连接就出现了10053错误
哪位高手可以为我解答吗,如果需要抓下来的数据包,可以在跟帖中提供邮件地址,我可以把ethereal包发过去
...全文
7487 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxipu 2009-12-01
  • 打赏
  • 举报
回复
o
百事烟 2009-02-26
  • 打赏
  • 举报
回复
纯属技术讨论,^&^

[Quote=引用 2 楼 flm007 的回复:]
10053:属于软件导致连线终断,应该是你的某个应用程序在运行的过程中,你进行了非法的操作,软件利用套接字错误.
这属于比较简单的软件故障了.
[/Quote]
不难,要看实际情况的,是单连接还是多连接,是否有心跳包,
主要得看两端是采用何种机制检测断线的?还是根本没检测,或检测不到?


[Quote=引用 3 楼 oyljerry 的回复:]
既然判断得到了10053的错误,就可以尝试重新连接来解决这个问题...
拔掉网线,重插,可能已经有了一些问题...
[/Quote]
如果是多连接,并且恰恰管理多连接方没有感应到网络断开,这种情况重新连接会使服务器不知所措!!
如果是Server得到了10053的错误,怎么重新连接?

如果拔掉网线,重插 的时间很短(1-3秒) 而且在心跳时间间隔以内(比如说7秒),双方都不会感觉到掉线,网线插上以后可以正常接收,就好像什么也发生过一样


有一种情况确定可以导致10053
断线以后,一方closesocket了,另一方没有closesocket,或双方都没有及时closesocket
rnon637 2009-02-26
  • 打赏
  • 举报
回复
sckNetworkSubsystemFailed 	10050 网络子系统失败 
sckNetworkUnreachable 10051 当前不能从主机到达网络
sckNetReset 10052 在设置SO_KEEPALIVE时连接超时
sckConnectAborted 10053 由于超时或者其它失败而中止接连 sckConnectionReset 10054 通过远端重新设置连接
sckNoBufferSpace 10055 没有可用的缓存空间
sckAlreadyConnected 10056 已连接的套接字
sckNotConnected 10057 未接连套接字
sckSockedShutdown 10058 已关闭套接字
sckTimedout 10060 套接字超时
sckConnectionRefused 10061 强行拒绝连接
sckNotInitialized 10093 套接字没有初始化


自己去找找看下 排除法 找出最根本的 问题
victor_cui 2009-02-26
  • 打赏
  • 举报
回复
原因已经找到,是因为我们用的DHCP 地址订阅的原因,我发现网络回复以后我们用原先的IP重连成功,这个时候机器发出了DHCP请求,过了大约七八秒钟以后,DHCP得到应答,这个时侯网络状态短暂变成了受限,我们的连接也被断开了,我想应该是XP重新绑定了地址,也够垃圾的,还是原先的地址,不知道XP为什么这么弱智。我的Vista就没有这个问题。高手可有好的解释?
victor_cui 2009-02-26
  • 打赏
  • 举报
回复
原因已经找到,是因为我们用的DHCP 地址订阅的原因,我发现网络回复以后我们用原先的IP重连成功,这个时候机器发出了DHCP请求,过了大约七八秒钟以后,DHCP得到应答,这个时侯网络状态短暂变成了受限,我们的连接也被断开了,我想应该是XP重新绑定了地址,也够垃圾的,还是原先的地址,不知道XP为什么这么弱智。我的Vista就没有这个问题。高手可有好的解释?
oyljerry 2009-02-26
  • 打赏
  • 举报
回复
既然判断得到了10053的错误,就可以尝试重新连接来解决这个问题...
拔掉网线,重插,可能已经有了一些问题...
flm007 2009-02-26
  • 打赏
  • 举报
回复
10053:属于软件导致连线终断,应该是你的某个应用程序在运行的过程中,你进行了非法的操作,软件利用套接字错误.
这属于比较简单的软件故障了.
百事烟 2009-02-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 victor_cui 的帖子:]
然后拔出网线立即插回
[/Quote]

情况很多的,
1.双方都感应到掉线?
2.仅发送方感应到掉线?
2.仅接收方感应到掉线?
2.双方都没感应到掉线?

LZ是哪种?还是其它情况?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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