[小结]select的使用注意事项

int select( int amxfdp1 , fd_set* readset ,fd_set * writeset ,fd_set *exceptset , const struct timeval *timeout) 
对于要测试的socket是不是每进行一次select前都要进行FD_SET操作,来设置函数中的writeset及readset?

网上搜索到的一些有关select函数的用法注意事项:
     这两天改掉了若干bug,都是关于select的使用
1,一个服务器程序,在select等待期间,会由于一个错误连接造成混乱,查来查去原来是没有在处理掉失败连接的时候将此文件描述符从等待集合中去除,在加了一句FD_CLR之后,程序恢复正常工作。
2,仍然是在select等待期间,有信号发生,之后select的工作就不再正确,原来是在信号处理函数中断select之后,select返回EINTR错误,程序必须处理掉这一错误。
3,select可以不必无限期等待,在最后一个参数中制定等待的时间即可,但这一时间在select返回时会被修改,因此当循环使用select时必须反复给时间变量赋值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值