我检查另一台机子连不连的上。测试时我使用139端口。在局域网内显示的结果和使用ping一样,但是我如果把我机子的网线拔掉,随便测试哪个IP都说连接成功,这是为什么BOOL CWLNet::CheckNetConnect(sockaddr_in destaddr, int interval)
{
m_socket = socket( AF_INET, SOCK_STREAM, 0 );
if ( m_socket == INVALID_SOCKET )
{
return FALSE;
} m_WsaEvent = WSACreateEvent();
if ( m_WsaEvent == WSA_INVALID_EVENT )
{
closesocket( m_socket );
return FALSE;
} if ( WSAEventSelect( m_socket, m_WsaEvent, FD_CONNECT) )
{
WSACloseEvent( m_WsaEvent );
closesocket( m_socket );
return FALSE;
} int j = connect( m_socket, (const struct sockaddr *)&destaddr, sizeof( sockaddr_in ) );
DWORD ret = WSAWaitForMultipleEvents(1, &m_WsaEvent, TRUE, interval, FALSE);
WSACloseEvent( m_WsaEvent );
closesocket( m_socket );
if ( ret == WSA_WAIT_EVENT_0 )
{
return TRUE;
}
else
{
return FALSE;
}
}
{
m_socket = socket( AF_INET, SOCK_STREAM, 0 );
if ( m_socket == INVALID_SOCKET )
{
return FALSE;
} m_WsaEvent = WSACreateEvent();
if ( m_WsaEvent == WSA_INVALID_EVENT )
{
closesocket( m_socket );
return FALSE;
} if ( WSAEventSelect( m_socket, m_WsaEvent, FD_CONNECT) )
{
WSACloseEvent( m_WsaEvent );
closesocket( m_socket );
return FALSE;
} int j = connect( m_socket, (const struct sockaddr *)&destaddr, sizeof( sockaddr_in ) );
DWORD ret = WSAWaitForMultipleEvents(1, &m_WsaEvent, TRUE, interval, FALSE);
WSACloseEvent( m_WsaEvent );
closesocket( m_socket );
if ( ret == WSA_WAIT_EVENT_0 )
{
return TRUE;
}
else
{
return FALSE;
}
}
返回消息,但连接动作和以前没什么区别。
直接判断connect返回值
没人知道为什么吗