关于WSAConnect和WSASyncSelect
solar 2002-03-25 02:36:24 我用WSAConnect连接一个不存在的IP,代码如下:
#define WM_WSASS (WM_USER+1234)
if((iRc=WSAConnect(g_sckProbe,(SOCKADDR*)&sai,sizeof(sai),NULL,NULL,NULL,NULL))!=SOCKET_ERROR)
MessageBox(hWnd,"Connect success","Complete",MB_OK);
else
{
iRc=WSAGetLastError();
if(iRc==WSAEWOULDBLOCK)
{
Label_A: MessageBox(hWnd,"Connect pending","Message",MB_OK);
}
else
{
closesocket(g_sckProbe);
g_sckProbe = INVALID_SOCKET;
MessageBox(hWnd,"Connect failed","Error",MB_OK);
}
}
if(g_sckProbe != INVALID_SOCKET)
{
WSAAsyncSelect(g_sckProbe,hWnd,WM_WSASS,FD_CONNECT)
}
问题是,当注释掉Label_A处的语句时,我能接收到自定义的消息WM_WSASS,否则90%的情况接受不到WM_WSASS。
哪位高手能帮忙看看,谢谢!