本帖最后由 VisualEleven 于 2012-02-20 15:19:17 编辑

解决方案 »

  1.   

    10060:由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 才360很少可能是客户端的问题。应该是你们的服务器设计的太烂了,listen的数改大到100--500应该没有问题了。还有注意服务,客户端关闭连接后,服务器也要将socket关闭,不然服务器占连接数。
      

  2.   

    不停的打开,关闭socket,可能是触发了socket的client丢失事件,
    你在每次close套接字之前,调用shutdown函数,看能不能有所改善,
      

  3.   

    客户端频繁的开关,用netstat命令看看是不是好多端口都成了time_wait状态,导致端口不可用了但10060错误又好像是因为服务器的问题
      

  4.   

    问题解决了,我在测试端加了如下代码,消除了TIME_WAIT的影响。这样就可以一直打开/关闭进行下去了。
    struct linger so_linger;
    so_linger.l_onoff = TRUE;
    so_linger.l_linger = 0;
    int z = setsockopt(m_hSocket,
    SOL_SOCKET,
    SO_LINGER,
    (char*)&so_linger,
    sizeof(so_linger)
    );
      

  5.   

    把TIME_WAIT关掉,在网络阻塞的情况下,会丢包的,