现在的位置: 首页 > 操作系统 > 正文

利用select实现IO多路复用TCP服务端

2020年02月12日 操作系统 ⁄ 共 736字 ⁄ 字号 评论关闭

一、相关函数

  1. intselect(intmaxfdp, fd_set *readset, fd_set *writeset, fd_set *exceptset,structtimeval *timeout);

  int maxfdp: 该参数是指集合中所有文件描述符的范围, 即所有文件描述符的最大值加1;

  fd_set *readset: 该参数是我们所关心的文件是否可读的文件描述符的集合, 如果这个集合中有个文件可读了,那select返回一个大于0的数,表示有文件可读了

  fd_set *writeset:......可写......

  fd_set *exceptset: ......异常发生......

  timeval *timeout:该参数是select的超时参数,这个参数使select处于三种状态:(1)timeout传入NULL,则select一直等到文件状态有变化时才返回,这段时间一直处于阻塞状态。(2):timeout 传入0,则select会立即返回(非阻塞),如果文件状态有变化则返回一个大于0的值没有变化则返回0;(3)timeout传入一个大于0的数,则select在timeout时间内阻塞,一旦文件状态有变化就会返回,超时后不管怎样都会返回值同样是文件状态右边话就返回一个大于0的值,无变化则返回0;

  timeval的结构:

以上就上有关利用select实现IO多路复用TCP服务端的相关介绍,要了解更多tcp多路复用,select多路复用,select io多路复用,利用select实现IO多路复用TCP服务端,编程,Linux编程,Linux Shell,Android,Android教程,JAVA,C语言,Python,HTML5内容请登录学步园。

抱歉!评论已关闭.