首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

10061 socket异常的猜想

2012-04-28 
10061 socket错误的猜想10061错误,大家都知道,“由于目标机器积极拒绝,无法连接。 ”许多解释都是表面的解释

10061 socket错误的猜想
10061错误,大家都知道,“由于目标机器积极拒绝,无法连接。 ”
许多解释都是表面的解释原因,说服务器端口没开等,防火墙阻挡等,其实,我遇到的问题并不是这样,看看我这个问题:

我做的是一个IOCP服务器程序跑在本机,同时我在本机有做了个client端程序,该client端程序用个循环不停的大量的连(调用connect函数)本机的IOCP服务器程序,若只跑client端程序的一个副本,一直连,没问题,但若跑client端程序的两个副本,一起连服务器,然后再杀死一个client副本,再一次启动client端的副本,这样折腾个1-2次,突然之间连接到服务器的client端就报10061错误,并且从此之后再也无法连接上IOCP服务器,我也很不理解为什么就突然连不上服务器了,于是我做了如下测试并做了猜想,这里也盼望高手给以解答:

(1)因为IOCP服务器和client都跑在本机,client端关闭了几次又重新运行几次,这样折腾了几个来回,导致client端程序的人为杀死影响了IOCP服务器程序对资源的需求(也许是IOCP服务器需要的一些网络资源被client占去)。
(2)我发现IOCP服务器此时的监听端口已经没有了,因为监听端口没了,所以client端连接肯定出10061错误。
(3)难道是我无意之间关闭了用来listen的socket?我把所有closesocket的地方全部作了判断,发现并没有close过服务器端的这个监听socket。
(4)我用的是acceptex来实现的iocp,难道acceptex的没有投递的缘故?经过测试,即使acceptex没有投递,正常情况下client仍然可以连接到IOCP服务器上去,只不过是无法收发信息罢了。

请各位朋友不吝啬赐教!

[解决办法]
关注
[解决办法]
WSAECONNREFUSED(10061)
No connection could be made because the target computer actively refused it. This usually results from trying to connect to a service that is inactive on the foreign host—that is, one with no server application running. 

不知道你的“杀死一个client副本”是如何操作的,但最后造成的结果是server不再监听了
[解决办法]
以前见过一次,我是服务器连接后马上关闭掉刚建立好的连接。
[解决办法]
楼主的钻研精神令人佩服!学习了,
[解决办法]
结贴通知:
请lz注意结贴。。。。

热点排行