Partilhar via


CAsyncSocket::OnConnect

Chamado pela estrutura para notificar nesse soquete está se conectando a tentativa de conexão for concluída, com êxito ou erro.

virtual void OnConnect(
   int nErrorCode 
);

Parâmetros

  • nErrorCode
    O erro mais recente em um soquete.Os códigos de erro a seguir se aplicam ao OnConnect função de membro:

    • 0   A função foi executada com êxito.

    • WSAEADDRINUSE   O endereço especificado já está em uso.

    • WSAEADDRNOTAVAIL   O endereço especificado não está disponível na computador local.

    • WSAEAFNOSUPPORT   Endereços na família especificado não podem ser usados com esse soquete.

    • WSAECONNREFUSED   A tentativa de conectar foi rejeitada forçada.

    • WSAEDESTADDRREQ   É necessário um endereço de destino.

    • WSAEFAULT   The lpSockAddrLen o argumento é incorreto.

    • WSAEINVAL   O soquete já limite a um endereço.

    • WSAEISCONN   O soquete já conectado.

    • WSAEMFILE   Não há mais descritores de arquivo estão disponível.

    • WSAENETUNREACH   A rede não pode ser acessada a partir deste host neste momento.

    • WSAENOBUFS   Nenhum espaço do buffer está disponível. Não é possível conectar o soquete.

    • WSAENOTCONN   O soquete não está conectado.

    • WSAENOTSOCK   O descritor é um arquivo, não um soquete.

    • WSAETIMEDOUT   A tentativa de conectar atingiu o tempo limite sem estabelecer uma conectar.

Comentários

Observação:

Em CSocket, the OnConnect função de notificação nunca seja chamada. Para conexões, você simplesmente telefonar Conectar-se, que retornará quando a conexão seja concluída (com êxito ou erro).Como são tratadas as notificações de conexão é um detalhe de implementação do MFC.

Para obter mais informações, consulte Windows Sockets: Soquete notificações.

Exemplo

void CMyAsyncSocket::OnConnect(int nErrorCode)   // CMyAsyncSocket is 
                                                 // derived from CAsyncSocket
{
   if (0 != nErrorCode)
   {
      switch(nErrorCode)
      {
         case WSAEADDRINUSE: 
            AfxMessageBox(_T("The specified address is already in use.\n"));
            break;
         case WSAEADDRNOTAVAIL: 
            AfxMessageBox(_T("The specified address is not available from ")
            _T("the local machine.\n"));
            break;
         case WSAEAFNOSUPPORT: 
            AfxMessageBox(_T("Addresses in the specified family cannot be ")
            _T("used with this socket.\n"));
            break;
         case WSAECONNREFUSED: 
            AfxMessageBox(_T("The attempt to connect was forcefully rejected.\n"));
            break;
         case WSAEDESTADDRREQ: 
            AfxMessageBox(_T("A destination address is required.\n"));
            break;
         case WSAEFAULT: 
            AfxMessageBox(_T("The lpSockAddrLen argument is incorrect.\n"));
            break;
         case WSAEINVAL: 
            AfxMessageBox(_T("The socket is already bound to an address.\n"));
            break;
         case WSAEISCONN: 
            AfxMessageBox(_T("The socket is already connected.\n"));
            break;
         case WSAEMFILE: 
            AfxMessageBox(_T("No more file descriptors are available.\n"));
            break;
         case WSAENETUNREACH: 
            AfxMessageBox(_T("The network cannot be reached from this host ")
            _T("at this time.\n"));
            break;
         case WSAENOBUFS: 
            AfxMessageBox(_T("No buffer space is available. The socket ")
               _T("cannot be connected.\n"));
            break;
         case WSAENOTCONN: 
            AfxMessageBox(_T("The socket is not connected.\n"));
            break;
         case WSAENOTSOCK: 
            AfxMessageBox(_T("The descriptor is a file, not a socket.\n"));
            break;
         case WSAETIMEDOUT: 
            AfxMessageBox(_T("The attempt to connect timed out without ")
               _T("establishing a connection. \n"));
            break;
         default:
            TCHAR szError[256];
            _stprintf_s(szError, _T("OnConnect error: %d"), nErrorCode);
            AfxMessageBox(szError);
            break;
      }
      AfxMessageBox(_T("Please close the application"));
   }
   CAsyncSocket::OnConnect(nErrorCode);
}

Requisitos

Cabeçalho: afxsock.h

Consulte também

Referência

Classe CAsyncSocket

Gráfico de hierarquia

CAsyncSocket::conectar

CAsyncSocket::GetLastError

CAsyncSocket::OnAccept

CAsyncSocket::OnClose

CAsyncSocket::OnOutOfBandData

CAsyncSocket::OnReceive

CAsyncSocket::OnSend

Outros recursos

CAsyncSocket membros