急!select 怎样用
int ret_len = 0;
int select_ret = 0;
timeval tvvalue = {0, 50000};
fd_set fdread;
FD_ZERO(&fdread);
FD_SET(m_socket,&fdread);
select_ret = select(0,&fdread,NULL,NULL,&tvvalue);
if (SOCKET_ERROR == select_ret)
{
Trace("SOCKET_ERROR == select_ret\n");
return -1;
}
if (select_ret > 0)
{
if (FD_ISSET(m_socket,&fdread))
{
ret_len = recv(m_socket,buf,len,0);
return ret_len;
}
}
如上代码,一个数据流类Socket,用来接收服务器的数据,但如果不Sleep就会经常收不到。服务器端的数据已成功发送。