多个线程同时调用connect连接服务器失败的问题
您好,下面的我的问题描述:
1、首先,把要连接的服务器信息,保存到链表中;假设有100个服务器要连接;其他一些是存在的服务器,大部分是不存在的,测试用。
2、启动最多32个线程,从队列中取要连接的服务器信息,连接服务器。
a、创建SOCKET
b、设置为非阻塞
c、调用connect
d、判断返回值,如果是WSAEWOULDBLOCK,则调用select处理
e、select最大等待5秒
f、成功/失败的处理。
3、连接失败,则把连接信息放回队列,下次可继续连接。
4、成功则进行其他处理。
过程就是上面的了,效果就是,大量的不存在的服务器,连接超时失败返回,但是应该成功的服务器,连接同样失败,有时是超时,有时是返回10061。然后就是不停的重连,一直都不成功。
如果使用阻塞,则存在的服务器都能连接成功。
我觉得是不是大量在连接同时进行,其他大部不成功,影响了后面应该能连接成功的连接变失败。
具体是什么原因呢?有什么解决办法?盼望各位大神指点迷津,谢谢。