一、概念
监听各个文件描述符,一旦文件描述符发生响动,则解除阻塞做相应的操作。
二、操作步骤
①建立socket链接(产生socket套接字);
②绑定IP和端口号;
③监听;
④清空集合;
⑤将文件描述符放入定义的集合中;
⑥等待客户端连接;
三、相关API
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
int select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timeval *timeout); //select多路复用,监听文件描述符
//nfds:最大的文件描述符+1;
//readfds:读集合;
//writefds:写集合;
//exceptfds:异常集合;
//timeout:时间;
struct timeval{
long tv_sec; //seconds 秒
long tv_usec; //microseconds 毫秒
};
void FD_CLR(int fd, fd_set *set); //将fd从set集合里移除
int FD_ISSET(int fd, fd_set *set); //判断fd是否在set集合中,如果在返回true 否则返回false
void FD_SET(int fd, fd_set *set); //将fd加入到set里
void FD_ZERO(fd_set *set); //将set集合清空
四、测试代码
服务器端
#include <stdio.h>
#include &l

最低0.47元/天 解锁文章
410





