请问在设置了一个连接socket为非阻塞,然后使用它去连接一个服务器,这时
connect的返回值不是WSAEWOULDBLOCK,但是也不是其他的msdn中列出的错误值,
这时该怎么处理,我跟踪的是WSAGetLastError()=183
这样可以按照WSAEWOULDBLOCK来处理吗?
connect的返回错误码是不是只有msdn中列出的错误值
歇歇 unsigned long ul = 3;//设置连接时间
int setIOct = ioctlsocket(SockConRemote,FIONBIO, (unsigned long*)&ul);
if(setIOct == SOCKET_ERROR)
{
return 1;
} int ret = connect(SockConRemote, (struct sockaddr*) &to, sizeof(to));
if(ret == SOCKET_ERROR)
{
}
connect的返回值不是WSAEWOULDBLOCK,但是也不是其他的msdn中列出的错误值,
这时该怎么处理,我跟踪的是WSAGetLastError()=183
这样可以按照WSAEWOULDBLOCK来处理吗?
connect的返回错误码是不是只有msdn中列出的错误值
歇歇 unsigned long ul = 3;//设置连接时间
int setIOct = ioctlsocket(SockConRemote,FIONBIO, (unsigned long*)&ul);
if(setIOct == SOCKET_ERROR)
{
return 1;
} int ret = connect(SockConRemote, (struct sockaddr*) &to, sizeof(to));
if(ret == SOCKET_ERROR)
{
}
int ret = connect(SockConRemote, (struct sockaddr*) &to, sizeof(to));
if(ret == 0)
{
printf("Congratulations,sir: Connect SUCCESS");
}
else
{
printf("Sorry,sir: Connect FAILURE! Error code=%d, MSDN error symbol:", ret);
switch(ret)
{
case WSANOTINITIALISED: printf("WSANOTINITIALISED"); break;
case WSAENETDOWN :printf("WSAENETDOWN ");break;
...
// 下面这些标号的捕捉错误类别和上面的类似,自己处理。
/*
WSAEADDRINUSE
WSAEINTR
WSAEINPROGRESS
WSAEALREADY
WSAEADDRNOTAVAIL
WSAEAFNOSUPPORT
WSAECONNREFUSED
WSAEFAULT
WSAEINVAL
WSAEISCONN
WSAENETUNREACH
WSAENOBUFS
WSAENOTSOCK
WSAETIMEDOUT
WSAEWOULDBLOCK
WSAEACCES
*/ }
}
case WSANOTINITIALISED: printf("WSANOTINITIALISED"); break;
case WSAENETDOWN :printf("WSAENETDOWN ");break;
...
// 下面这些标号的捕捉错误类别和上面的类似,自己处理。
/*
WSAEADDRINUSE
WSAEINTR
WSAEINPROGRESS
WSAEALREADY
WSAEADDRNOTAVAIL
WSAEAFNOSUPPORT
WSAECONNREFUSED
WSAEFAULT
WSAEINVAL
WSAEISCONN
WSAENETUNREACH
WSAENOBUFS
WSAENOTSOCK
WSAETIMEDOUT
WSAEWOULDBLOCK
WSAEACCES 这些标志没有一个是183的
所有的错误我都作了处理,就是183的不知道是什么错误
kuai lai a