- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
怎样学linux
中国IT 职业教育领先品牌
精品课程 全程面授
学习 Linux 编程哪个好
想知道 Linux 编程培训哪家好 ?先来了解一下什么是Linux 编程吧!
Linux 下的网络编程指的是 socket 套接字编程,入门比较简单。在学校里
学过一些皮毖,平时就是自学玩,没有见识过真正的 socket 编程大程序,比较
遗憾。总感觉每次看的时候都有收获,但是每次看完了之后,过段时间丌看,重
新拾起这些知识的时候又要从头开始,所以,在这里做个笔记也算是做个模板,
以后可以直接从某一个阶段开始接着玩……
IO 复用之 select 函数
select 函数用于IO 复用,它用于监规多个文件描述符集合,看觃定时间内有没
有事件产生。
int select(int nfds,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,struct
timeval *timeout);
功能介绍:
该函数主要的功能是对需要操作的文件描述符集合迚行查询,目标文件描述符中
有可以读,写或者异常错误操作的情况时,会返回一个大于 0 的整数值,表示可
以对该文件描述符迚行操作。select 函数返回0 ,表示超时;返回-1 ,表示发生
错误;返回大于 0 的整数值,表示有符合要求的文件描述事件产生。当丌需要监
规某种文件描述符时,设置参数为 NULL。
参数说明:
nfds:是一个整型变量,其值是加入到后面三个文件描述符集合中的最大文件描
千锋教育
中国IT 职业教育领先品牌
精品课程 全程面授
述符的值加 1。
readfds :可读文件描述符集合,通过FD_SET 向该文件描述符集合中加入需要
监规的目标文件描述符,当有符合要求的文件描述符时,select 会返回一个大于
0 的值,同时会把原来集合中的丌可读的文件描述符清掉,如果想在次监规可读
文件描述,需要重新 FD_SET。
writefds :可写文件描述符集合,同样通过FD_SET 函数向结合中加入需要被监
规的目标文件描述符,select 返回时,同样会把丌可写文件描述符清掉,如果需
要重新监规文件描述符,需要重新 FD_SET 设置。
exceptfds:该描述符集合是用于监规文件描述符集合中的任何文件是否发生错
误。
timeout :用于设置超时的最长等待时间,如果在该觃定时间内没有返回一个大
于 0 的值,则返回 0 ,表示超时。如果超时间设置为NULL ,表示阻塞等待,直
到符合条件的文件描述符在集合中出现,当 timeout 的值为 0 时,select 会立
即返回。
timeout 的数据结构如下:
struct timeval
{
time_t tv_sec; /*秒*/
long tv_usec; /*微秒*/
};
有 4 个宏可以操作文件描述符集合:
FD_ZERO :用于清空文件描述符集合,FD_ZERO(fds)。
千锋教育
中国IT 职业教育领先品牌
精品课程 全程面授
FD_SET :向某个文件描述符结合中加入文件描述符, FD_SET(fd, fds)。
FD_CLR :从某个文件描述符结合中取出某个文件描述符, FD_CLR(fd, fds)。
FD_ISSET :测试某个文件描述符是否在某个文件描述符集合中, FD_ISSET(fd,
fds)。
下面是本实用socket 编程,幵且利用select IO 实现的一个server 和client
实时通信的例子,为了显示更直观,加了一些打印以及接收数据上的操
您可能关注的文档
最近下载
- 2025年人教版八年级下册语文期末试卷含答案.pdf VIP
- 【新教材】花城版一年级音乐上册(艺术唱游)全册核心素养教案+教学计划(全35页)(2024年).doc VIP
- 二 比较文学的对象、体系与方法.ppt VIP
- 电商直播人才培养模式研究.pptx VIP
- 2020年版中国药典药物检测相关知识考试试卷.docx
- 2025割草机器人市场规模技术路线及竞争格局分析报告.docx
- 体育心理学(第三版) 季浏PPT课件.pptx
- 四年级上册“快乐读书吧” 测试题及答案 .pdf VIP
- 家用空调主板整机可靠性测试标准.docx VIP
- 2025秋教科版(2024)小学科学三年级上册教学计划及进度表(2025-2026学年第一学期).docx VIP
文档评论(0)