65,211
社区成员
发帖
与我相关
我的任务
分享
for(;;)
{
//连接服务器
reVal = connect(sClient, (const sockaddr*)&serAddr, sizeof(serAddr));
//处理连接错误
if(SOCKET_ERROR == reVal)
{
int nErrCode = WSAGetLastError();
if(WSAEWOULDBLOCK == nErrCode ||
WSAEINVAL == nErrCode) //如果不加这个,下面会因为 WSAEALREADY 返回FALSE
{
continue;
}else if(WSAEISCONN == nErrCode)
{
break;
}else
{
// WSAEALREADY
//未知原因
return FALSE;
}
}
if(0 == reVal) //连接成功
break;
}
if ( connect( ConnectSocket, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR) {
printf( "Failed to connect.\n" );
WSACleanup();
return;
}