select()复用大量描述字的服务器程序,所需的描述字超过了1024个!
这种情况下好像不能用select()吧?
有什么方法来解决这个描述字过多的问题?

解决方案 »

  1.   

    select()复用大量描述字的服务器程序,可以超过1024个!将宏FD_SETSIZE重新定义
    例如
    #ifndef FD_SETSIZE 
    #define FD_SETSIZE 1024
    #endif注意: FD_SETSIZE宏定义必需在预编译头文件中如:StdAfx.h#define VC_EXTRALEAN#ifndef FD_SETSIZE 
    #define FD_SETSIZE 1024
    #endif
    .....
    程序中
    select(1024,.....)
      

  2.   

    采用定义 FD_SETSIZE 的方法可以, 也可以采用分段select的方法, 循环中每次检测FD_SETSIZE 个
      

  3.   

    cuiyinjie兄所说的分段select是否是使用多线程,每个线程检测一部分socket
    asker100兄, 对 select 使用线程池,能否详细一些?