加载中…
个人资料
chuohri
chuohri
  • 博客等级:
  • 博客积分:0
  • 博客访问:10,517
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
博文
标签:

linux

c语言

杂谈

Select在Socket编程中还是比拟重要的,然而对于初学Socket的人来说都不太爱用Select写过程,他们只是适应写诸如 connect、accept、recv或recvfrom这么的阻塞过程(所谓阻塞措施block,望文生义,即便历程或是线程厉行到这些函数时定然等
待某个事件的发生,万一事件未曾发生,历程或线程就被阻塞,函数不能即刻归来)。
然而利用Select就能够告终非阻塞(所谓非阻塞措施non- block,即便历程或线程厉行此函数时无须非要期待事件的发生,一旦厉行确定归来,以归来值的不同来反映函数的厉行情形,万一事件发生则与阻塞措施雷同,若事件未曾发生则归来一个代码来告诉事件未发生,而历程或线程继续厉行,因而效率较高)措施工作的过程,它能够监视我们必需监视的文件描写符的改变情形——读写或是失常。
下面翔实推荐一下!
Select的函数款式(我所说的是Unix系统下的伯克利socket编程,和windows下的有差异,一会儿解释):
int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout);
先解释两个构造体:
第一,struct fd_set能够会意为一个聚集,这个聚凑近储藏的是文件描写符(filedes

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有