UDP的recvfrom超时:
fd_set ReadSet;
FD_ZERO(&ReadSet);
FD_SET(sockEncoder,&ReadSet);
timeout.tv_sec = 1;
timeout.tv_usec = 0;
ret = select(0, &ReadSet, NULL, NULL, &timeout);
if(ret>0)
{
ret = recv(sockEncoder, buf, sizeof(buf), 0);
if(0 > ret)
{
cout<<"SendToEncoder() "<<"System Error: recv from encoder"<<", error-"<<GetLastError()<<endl;
closesocket(sockEncoder);
return FALSE;
}
if(0 == ret)
{
cout<<"SendToEncoder() "<<"recv from encoder"<<" timeout"<<endl;
return FALSE;
}
TCP connect 超时:
//使不阻塞在connect
unsigned long ul = 1;
ioctlsocket(sockEncoder, FIONBIO, &ul); //设置为非阻塞模式