1.初始化fd_set
tuple<fd_set, fd_set, fd_set> InitFdset(SOCKET _sock)
{
tuple<fd_set, fd_set, fd_set> fds;
fd_set rfd = {}, wfd = {}, efd = {};
FD_ZERO(&rfd);
FD_ZERO(&wfd);
FD_ZERO(&efd);
FD_SET(_sock, &rfd);
FD_SET(_sock, &wfd);
FD_SET(_sock, &efd);
fds = make_tuple(rfd, wfd, efd);
return fds;
}
2.调用select查找有效socket并处理
timeval t = {0,0};
int ret = select(_sock + 1, &rfd, &wfd, &efd, &t);//最后参数NULL为阻塞模式
3.判断可读socket,保存连接
if (FD_ISSET(_sock, &rfd))
{
FD_CLR(_sock, &rfd);
sockaddr_in cAddr = {};
int len = sizeof(sockaddr_in);
SOCKET c = INVALID_SOCKET;
c = accept(_sock, (s