我写的socket程序,服务器需要支持1000个左右的客户端连接,同时这些客户端要一直在线,与服务器进行通信。
我测试的时候发现,程序运行一段后,会出现10055的错误,我查看帮助,发现是资源耗尽造成的,但是我的程序的确需要这么多客户同时在线。
请各位老大,看看有没有好的解决方法。

解决方案 »

  1.   

    服务器要控制未完成的操作数。如果C没有及时的收,S不停的发,则S端的TCP窗口满。报10055系统缓冲满错误。
      

  2.   

    难道是我测试程序发的太快,我测试程序一次发4k,每10秒发一次,我的服务器是先一个字节一个字节的判断同步。
    tcp窗口的大小,默认是多大?
      

  3.   

    #define SO_MAX_MSG_SIZE   0x2003      /* maximum message size */可以用int setsockopt (
      SOCKET s,                 
      int level,                
      int optname,              
      const char FAR * optval,  
      int optlen                
    );
     把缓冲区设大一点;服务器接收后尽量把数据放进缓冲队列中,然后从队列中取出数据再作处理