MSDN上说理论值在6W也就是系统端口的个数.从网上查到一些资料说最大实测值在5W以上,不知道各位牛人自己实测的值能到多少?要自己测试值,程序谁写的没关系.我自己测能达到2W时,连接就已经不稳定了.

解决方案 »

  1.   

    我测试过本机连入是50k(60k可以连上,但是通讯的时候容易断线),局域网测试过80k,广域网,实际在用的是20k.
      

  2.   

    80K??不论用那种IO模型,一个socket连接都要占一个端口号,windows共有端口65535个,1000以内的要留给系统使用.按这么计算不可能超过6W(MSDN上也是说理论值也是6W,与这种理解基本相符).
      

  3.   

    比如
    socket server;
    listen( server, ...);socket client = Accept(...);这个client并没有占用一个实际的端口.client代表的是什么?客户端的套接字么!
      

  4.   

    client是一个客户连接会话(session)
      

  5.   

    如果在2003系统中,未分页内存可以达到250MB,除去一些驱动使用的,基本还会有200MB可用的.服务程序每调用accept(),acceptex()等接收一个套接字,要使用1.5KB左右的未分页内存,如果200MB的未分页内存可用的话,那么可以接收到10多W个连接了(这里程序只是接收客户连接,啥也不做的).如果是64位的系统,能接收的更多呢.讨论这个有什么意义?
      

  6.   

    有点蒙.
    记得套接字的定义是一个IP+port,比如 127.0.0.1  8080 这是一个套接字.
     套接字 != 端口.??有点搞不懂了.
      

  7.   

    实测8W,由于缺少客户机,没有继续测,可能还会更多,保守估计100W连接没问题。XP系统,跟端口没关系。
      

  8.   

    能超过64k的都是神仙.
    除非用ipv6
      

  9.   

    是的。个人认为 端口号 与 socket有区别.打开socket更像是打开文件的一个handle,只不过,sokcet是一个网络的文件读写端口而已.完全是按文件的操作方式处理.
    端口号是16位的。2^16=65535个