select核心代码:
int fd_arr[MAX_SIZE];
Init_Array(fd_arr);
fd_set set;
while(1)
{
FD_ZERO(&set);
int i = 0 ;
for( ; i < MAX_SIZE ; ++i)
{
if(fd_arr[i] != -1)
FD_SET(fd_arr[i],&set);
}
struct timeval tm = {5,0};
int maxfd = Get_Max(fd_arr);
int n = select(maxfd+1,&set,NULL,NULL,&tm);
if( n < 0 )
{
//错误处理
}
else if( n == 0 )
{
//超时处理
}
else
{
//有事件发生,等待处理
}
}
poll核心代码:
struct pollfd fd_arr[MAX_SIZE];
Init_Array(fd_arr);
Fd_Add(fd_arr,sockfd);
while(1)
{
int n = poll(fd_arr,MAX_SIZE,5000);
if( n == -1 )
{
//错误处理
}
else if( n == 0 )
{
//超时处理
}
else
{
//事件发生,等待处理
}
}
epoll核心代码:
int epfd = epoll_create(MA