fd_set

 

fd_set fds;

/* 将指定的文件描述符集清空,在对文件描述符集合进行设置前,必须对其进行初始化,如果不清空,由于在系统分配内存空间后,通常并不作清空处理,所以结果是不可知的。*/
// 初始化set集合为null集合
FD_ZERO(&fds); // 将socket_father_hd加入set集合 FD_SET(socket_father_hd, &fds); // 将socket_father_hd从set集合中清除 FD_CLR(socket_father_hd, &fds); // 检测socket_father_hd是否在set集合中,不在则返回0 FD_ISSET(socket_father_hd, &fds);

 select函数用于决定一个或者多个套接字的状态。

int select(
    int    nfds,

    //  指向检查可读性的套接字集合的可选的指针
    fd_set *readfds,

    //  指向检查可写性的套接字集合的可选的指针
    fd_set *writefds,
// 指向检查错误的套接字集合的可选的指针 fd_set *exceptfds, // select函数需要等待的最长时间,需要以TIMEVAL结构体格式提供此参数,对于阻塞操作,此参数为null const struct timeval *timeout );

 

posted @ 2018-08-02 11:57  聪明不绝顶  阅读(386)  评论(0编辑  收藏  举报