C ++网络编程之select

C++网络编程:深入理解select模型
本文详细介绍了C++中的select系统调用,包括其功能、参数、返回值和基本原理。select用于实现多路复用I/O模型,通过监视多个文件描述符的状态变化。文章还探讨了select模型的常见程序片段,特点以及如何处理文件描述符的最大数量限制。重点讲解了FD_SETSIZE及其对监控文件描述符数量的影响。

1、select

原型:

#include <sys/select.h>
int select(int maxfd, fd_set *rdset, fd_set *wrset, fd_set *exset, struct timeval *timeout);  

功能:

        select用来实现多路复用输入/输出模型。select系统调用来让我们的程序监视多个文件句柄的状态变化。程序会停在select处等待,知道被监视的文件句柄有一个或多个发生了改变,可以等待执行异步I/O。

参数:

  • maxfd是需要监视的最大的文件描述符值+1;
  •  rdset: 指向检查可读性的套接字集合的可选的指针。
  •  wrset: 指向检查可写性的套接字集合的可选的指针。
  •  exset: 指向检查错误的套接字集合的可选的指针。
  •  timeout: struct timeval结构用于描述一段时间长度,如果在这个时间内,需要监视的描述符没有事件发生则函数返回,返回值为0。定义如下。
#include <s
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值