select阻塞怎么解除?急~~~~
先把代码贴上
while(TRUE)
{
fd_set rdfds;
FD_ZERO(&rdfds);
FD_SET(sockSrv,&rdfds);
while(1)
{
int retval=select(0,&rdfds,NULL,NULL,NULL);
printf("retval=%d\n",retval);
if(retval == SOCKET_ERROR)
{
printf("select failed!\n");
WSACleanup();
}
else
{
if(FD_ISSET(sockSrv,&rdfds))
{
sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
FD_SET(sockConn,&rdfds);
printf("connected from '%s'\n",inet_ntoa(addrClient.sin_addr));
}
else
{
send(sockConn,sendBuf,2357,0);
printf("传输文件字节数为%d\n",2357);
closesocket(sockConn);
}
}
}
}
我把建立连接后生成的套接字sockConn添加到文件描述符集合rdfds中,通过循环再执行SELECT,结果一直阻塞,什么原因?是我没准备好要发送的数据到缓冲区吗?