有一个服务器IP=“xxx.xxx.xxx.xxx”我要连接这个服务器IP,需要建立1000个socket连接!管理用select模式不行吧。。select最大只支持64个好像,那怎么办呢,不可能建立1000个线程吧
还有如果要建立10000个连接又怎么管理呢

解决方案 »

  1.   

    不是1000个客户端是1个客户端连接1个服务器,但这个客户端有1000个socket来连接这个服务器,服务器用完成端口接受如何来写这个客户端程序管理这么多socket呢,如果更多比如20000又如何管理呢
      

  2.   

    错了,是有一个客户端连接1000个服务器,如何管理socket?
    连接更多比如20000个服务器又如何管理socket
      

  3.   

    IOCP貌似也可以用来写客户端的吧,创建好SOCKET,然后关联到IOCP,之后就可以用GetQueuedCompletionStatus来获取投递的ConnectEx、WSASend、WSARecv等的结果。
      

  4.   

    20000?
    IOCP吧,
    没弄过这么多的,不懂
      

  5.   

    用select的话,就要多线程。不过一般Server用IOCP吧,性能和伸缩性比较好
      

  6.   


    一个线程管理一些socket,比如64个, 开10000 / 64个线程
      

  7.   

    采用 IOCP的形式,然后使用哈希算法来管理SOCKET,外加多线程的方式,其实不要管客户端和服务器端,他们控制socket的方式是一样的。
      

  8.   

    客户端连接1000个服务器,如果真提这样的话,就把客户端当服务器来用,服务器当客户来用,只是连接,和等待连接不同面已已数量大多,就用iocp 
    在客户端用链表,或者stl map保存socket socket
    map 管理什么的,
    保存好的,就解决问题了
      

  9.   

    1000个soket连接呀,这么多,不会是并发的吧,现在普遍采用的技术都是用线程池来管理这些多并发的线程~~~你可以建立最大最多线程数来管理这1000个soket,像消息队列似的,一个线程工作完就返回接受管理连接一个新的socket,如今最繁忙的网游也是这样做的~~~
      

  10.   

    可不可以采用链表的形式来存储 socket。