这是我正在使用的声明:
m_stat_arr_nClient_sockfd[nIndex]= accept(nServerSocket,(struct sockaddr *)&client_address, (socklen_t *)&client_len);
这是一个阻止调用,那么如何才能使这种非阻塞?
答案 0 :(得分:4)
您必须使用fcntl
设置nServerSocket
非屏蔽;
int flags = fcntl(nServerSocket, F_GETFL, 0);
fcntl(nServerSocket, F_SETFL, flags | O_NONBLOCK);
完成此操作后,对该套接字上的accept()
的调用将不再阻止。