c++ - 使用linux socket时select函数中socket文件描述符加1的意义
问题描述
在select函数中使用时在socket文件描述符上加1是什么意思?
我创建如下所示的套接字文件描述符,
int sock_file_descriptor;
sock_file_descriptor = socket(AF_INET, SOCK_DGRAM, 0);
并在下面的选择功能中使用它,
result = select(sock_file_descriptor+1, &readfd, NULL, NULL, 0);
select函数中+1是什么意思?当我删除添加值的计算时,它甚至不起作用。
提前致谢。
解决方案
实时调频!的第一个参数select
是要考虑的文件描述符的数量:
nfds 参数指定要测试的描述符范围。应在每组中检查第一个 nfds 描述符;也就是说,应检查描述符集中从零到 nfds-1 的描述符。
这是一个使用示例:
// create socket
int sock_file_descriptor;
sock_file_descriptor = socket(AF_INET, SOCK_DGRAM, 0);
// initialize the read fd_set
fd_set read;
FD_ZERO(&read);
FD_SET(sock_file_descriptor, &read);
// ok we can select
result = select(sock_file_descriptor+1, &readfd, NULL, NULL, 0);
推荐阅读
- javascript - React - 如何向数组添加新值并在警报窗口中显示该数组?
- c# - 无法加载文件或程序集“系统
- javascript - 在javascript中提取和更改base64图像数据
- knex.js - 查询更多 1000 条记录时,Knex 0.95.4 无法使用 oracle 11g 引发异常 ORA 01795
- azure-iot-edge - 通过一个 Azure 管道和一个版本将两个 IoT Edge 模块发布到暂存和生产环境中的一个 IoT Edge 设备
- opencart2.x - 只能通过 /admin login OPENCART 2.3.0.2 访问 FTP
- spring - 如何在 Spring Boot 上初始化 Jackson 以获取快速的第一个请求?
- python-3.x - 如何在熊猫数据框中添加一个复选框
- ruby-on-rails - 如何在 Rails 控制台中根据列格式过滤模型
- ios - 更新到 MacOS Monterey 后的 Swift 包问题