blj28

导航

select 使用注意事项

关于select函数的使用,有几点需要注意的地方:
1. maxfdp 为所有fd中的最大值加1.
2. rdfds 和 timeout 在每次执行select前都要重新初始化. 对于rdfds,每次循环都要清空集合,否则不能检测描述符变化;而对于timeout,每次都要初始化其值,否则timeout被默认初始化为0。

int nfds,

select_ret;

struct timeval timeout;

fd_set readfds;

FD_ZERO(&readfds);

FD_SET(fd, &readfds);

 

3、另外注意最后一个参数不能直接赋值为0 赋值为0的话直接被认为时NULL 将会一直阻塞

可以使用struct timeval 结构体赋值为0

 4、另外在监控套接字连接时select函数返回值为1

posted on 2024-08-15 15:17  bailinjun  阅读(5)  评论(0编辑  收藏  举报