CAsyncSocket的receivefrom()问题。
在一个线程中用ReceiveFrom()函数接收udp数据,但是函数返回结果为-1;用n =WsaGetLastError()来查看错误代码时,却发现是n=WSAEWOULDBLOCK,怎么解释?
另外,我增加了等待时间后,仍然不能得到我想要的结果。具体程序代码见下:
UINT fro(LPVOID pParam)
{
........
CUdpCSocket * tem=new CUdpCSocket;
tem->Attatch((SOCKET)pParam);
.........
int rec=tem->ReceiveFrom((void *)t,sizeof(tPacket),s,port,0);
if(rec ==SOCKET_ERROR || rec == 0)
{
Sleep(2);
}
...........
}
另外,调用线程的函数如下:
AfxBeginThread((AFX_THREADPROC)fro,(void *)m_pUdpSocket->Detach(),
THREAD_PRIORITY_HIGHST,NULL,NULL,NULL);
其中,CUdpCSocket * m_pUdpSocket;
class CUdpCSocket:public CAsyncSocket
{
..........
}
各位帮我想象是哪儿出了问题?谢谢先!!