listen函数的第二个参数即backlog最大可以设为多少呢?SOMAXCONN是在哪里定义的啊?

解决方案 »

  1.   


    在 Winsock2.h 中定义
    #define SOMAXCONN       0x7fffffff
      

  2.   

    可以随便设置,我想这是个遗留的问题,记得以前刚接触套接字的时候,看unix编程或听高手教诲说,默认的是5就可以了,因为这是berkely遗留的一个问题,不影响系统实现。。后来一直就用默认的5。最近在2003下面写服务器,压力测试的时候,客户端的发送老是失败,返回的是远端关闭了连接。。跟了2天,后来实在没办法了,突然想到改动listen的参数试下,把5改成20,并发50个线程发送1w个写读操作,全部顺利完成。。所以建议listen的时候都用大于20的基本就可以了。我作了个测试,这因该可以作为临街状态。。
    刚查看了别人的帖子,说可能还与os有关系。。