首页 > 试题广场 >

采用多路复用IO监听3个套接字的数据时,如果套接字描述符分

[单选题]
采用多路 I/O 复用监听 3 个套接字的数据时,如果套接字描述符分别是:5,17,19,则下面 select 代码中的 maxfd 应取为()
select(int maxfd,struct fd_set* rdset,NULL,NULL)
  • 4
  • 20
  • 5
  • 19

http://www.cnblogs.com/spinsoft/archive/2012/07/18/2596857.html

发表于 2015-10-12 13:53:15 回复(0)
Maxfd是三个套接字描述符中最大数字加上1
发表于 2015-10-12 16:54:35 回复(3)
Maxfd要监视的文件描述符的范围,一般取监视的描述符数的最大值+1

发表于 2017-05-29 17:19:18 回复(0)
最大套接字描述符+1
发表于 2016-08-23 22:06:24 回复(0)
int select(nfds, readfds, writefds, exceptfds, timeout) int nfds; fd_set *readfds, *writefds, *exceptfds; struct timeval *timeout; nfds:select监视的文件句柄数,视进程中打开的文件数而定,一般设为你要监视各文件 中的最大文件号加一。(注:nfds并非一定表示监视的文件句柄数。官方文档仅指出nfds is the highest-numbered file descriptor in any of the three sets, plus 1. (可在linux环境中通过man select命令查得)) readfds:select监视的可读文件句柄集合。 writefds: select监视的可写文件句柄集合。 exceptfds:select监视的异常文件句柄集合。 timeout:本次select()的超时结束时间。(见/usr/sys/select.h,可精确至百万分之一秒!) 当readfds或writefds中映象的文件可读或可写或超时,本次select() 就结束返回。程序员利用一组系统提供的宏在select()结束时便可判 断哪一文件可读或可写,对Socket编程特别有用的就是readfds。
发表于 2018-03-19 10:13:52 回复(0)
如果你想知道是是否可以从标准输入和一些套接字(sockfd)中读取数据,你就可以把文件描述符和sockfd 加入readfds 中。numfds 的数值设成readfds 中文件描述符中最大的那个加上一,也就是sockfd+1(因为标准输入的文件描述符的值为0 ,所以其他任何的文件描述符都会比标准输入的文件描述符大)。
发表于 2015-10-12 20:26:39 回复(0)
最大的加一
发表于 2020-04-21 00:55:35 回复(0)
Maxfd是三个套接字描述符中最大数字加上1
发表于 2016-05-20 16:07:32 回复(0)
select 监听描述符是否可读写
实现方式是遍历
第一个参数是监测描述符个数 ,所以大于maxfd的描述符是不会被监测到的(要跟fd_set一起使用)
描述符从0开始,所以个数为最大值+1


发表于 2020-01-03 15:04:05 回复(0)
maxfd取监视的描述符数的最大值➕1
发表于 2023-06-26 00:04:34 回复(0)
最大的数字加上一
发表于 2022-08-04 17:34:27 回复(0)
最大值加一,秋招必考题,15分摆在这爱背不背
发表于 2022-06-16 14:58:28 回复(0)
入选腾讯笔试题🤣
发表于 2021-08-24 16:57:02 回复(0)
Maxfd是套接字描述符中最大数字 + 1

发表于 2019-01-01 17:31:15 回复(0)
先对函数中的参数做一个简单的介绍。参数maxfd是需要监视的最大的文件描述符值+1;rdset,wrset,exset分别对应于需要检测的可读文件描述符的集合,可写文件描述符的集 合及异常文件描述符的集合。struct timeval结构用于描述一段时间长度,如果在这个时间内,需要监视的描述符没有事件发生则函数返回,返回值为0。
发表于 2018-08-29 20:44:44 回复(0)
Maxfd是三个套接字描述符中最大数字加上
发表于 2016-09-16 15:39:07 回复(0)
B
发表于 2015-12-01 00:00:45 回复(0)
20 
发表于 2015-10-12 15:30:13 回复(0)