铁算盘论坛www.76111.com,香港马会资料大全,34818香港神码,77155彩霸王中特官方网,78222开奖结果今天,761222.com,www.445877.com
34818香港神码

事件驱动模型的select

时间:2019-06-29 04:02  作者:admin  来源:未知   查看:  
内容摘要:可选中1个或多个下面的关键词,搜索相关资料。也可直接点搜索资料搜索整个问题。 select在linux和windows平台上都支持的,接口基本上相同,但参数的含义略有不同。通常,使用select库的步骤是: (1)创建所关注的事件的描述符集合(fd_set),对于一个描述符

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  select在linux和windows平台上都支持的,接口基本上相同,但参数的含义略有不同。通常,使用select库的步骤是:

  (1)创建所关注的事件的描述符集合(fd_set),对于一个描述符,可以关注其上面的读(read)、写(write)、异常(exception)事件,所以通常,要创建三个fd_set, 一个用来收集关注读事件的描述符,一个用来收集关注写事件的描述符,另外一个用来收集关注异常事件的描述符集合。

  (2)调用select(),等待事件发生。这里需要注意的一点是,select的阻塞与是否设置非阻塞I/O是没有关系的。select的原型如下所示:

  其中,最后一个参数timeout,可以设置select等待的时间。如果该值设置为0,那么,select()在有事件发生的时候就立即返回。如果该值不为0,那么,select()会等待指定的时间,然后再返回。select()的返回值指定了发生事件的fd个数。

  (3)轮询所有fd_set中的每一个fd ,检查是否有相应的事件发生,如果有,就进行处理。



Power by DedeCms