CSocket::Connect(..)的问题。
我在开发客户端连接到服务器端时,用一般的socket通过ioctlsocket()设置socket为非阻塞的,就可以connect()连接到服务器,立即返回失败还是成功。但是在CSocket类下就不行,每次都等足了大约45s才返回。是否CSocket类屏蔽了非阻塞属性,还是调用的函数不对??代码如下:
unsigned long l_iFlag=1;
l_iRet=this->IOCtl(FIONBIO,(unsigned long*)&l_iFlag);
if(l_iRet==SOCKET_ERROR)
{
AfxMessageBox("无法进行非阻塞设置!");
return FALSE;
}
if(!Connect((LPCTSTR)m_strRIP,m_iRPort))
{
int l_iError=::GetLastError();
Close();
m_pDoc->WriteLogToFile("Error:[ConnectToServer] Can't Connect!");
return FALSE;
}