33,311
社区成员
发帖
与我相关
我的任务
分享
fd_set fd_r,fd_w;
struct timeval tvv;
while(1)
{
FD_ZERO(&fd_r);
FD_ZERO(&fd_w);
FD_SET(lisSock, &fd_r);
FD_SET(lisSock, &fd_w);
tvv.tv_sec = 2;
tvv.tv_usec = 0;
Ret = select(lisSock + 1, &fd_r, &fd_w, NULL, &tvv);
printf("\n [%s]-[%d]: Ret = %d \n", __func__, __LINE__, Ret);
acpSock = accept( lisSock, (struct sockaddr *)&clieaddr_in, &socklen);
if( acpSock < 0)
{
perror("accept");
sleep(2);
continue;
}
m_clientNum ++;
pthread_t pthreadId;
pthreadparam *pThreadParam = new pthreadparam;
pThreadParam->sockFd = acpSock;
pThreadParam->ClientNO = m_clientNum;
pthread_create( &pthreadId, NULL, &clientfuncthread, pThreadParam);
printf("\n\n there have %d cliens connect success!\n\n", m_clientNum);
}
好早之前写的,select函数只是轮询已有的套接字 是否有准备好的 读 ,写 和 异常 三种状态,