Поделиться через


CAsyncSocket::OnConnect

Вызываемый платформой для уведомления этого при подключении сокет, что его попытка соединения завершена успешно, либо ошибке.

virtual void OnConnect( 
   int nErrorCode  
);

Параметры

  • nErrorCode
    Последняя ошибка на сокете. Коды ошибок ошибке, применяются к OnConnect функции-члена:

    • 0 Функция успешно выполнена.

    • WSAEADDRINUSE Указанный адрес уже используется.

    • WSAEADDRNOTAVAIL Указанный адрес недоступен из локального компьютера.

    • Адреса WSAEAFNOSUPPORT в указанном семействе нельзя использовать с этим гнездом.

    • WSAECONNREFUSED Попытка подключиться сильн было отклонено.

    • Целевой адрес WSAEDESTADDRREQ а не требуется.

    • WSAEFAULT Аргумент lpSockAddrLen неправильно.

    • WSAEINVAL Сокет уже привязано на адрес.

    • WSAEISCONN Сокет уже подключено.

    • WSAEMFILE Больше нет идентификаторов файлов доступно.

    • WSAENETUNREACH Сеть становится недоступной из основного приложения в данное время.

    • Нет места доступно WSAENOBUFS буфера. Сокет нельзя подключиться.

    • WSAENOTCONN Сокет не подключено.

    • Файл, не WSAENOTSOCK дескриптор сокета.

    • WSAETIMEDOUT Попытка подключения истекло время ожидания без установки соединения.

Заметки

Примечание

В CSocket функция уведомления OnConnect никогда не называется.Для соединений, просто вызовите Подключить, которое будет возвращено, если соединение выполняется успешно или с ошибкой (или).Уведомления настраиваются как соединения реализации MFC.

Дополнительные сведения см. в разделе Windows sockets: Уведомления сокета.

Пример

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);
}

Требования

Header: afxsock.h

См. также

Ссылки

Класс CAsyncSocket

Диаграмма иерархии

CAsyncSocket::Connect

CAsyncSocket::GetLastError

CAsyncSocket::OnAccept

CAsyncSocket::OnClose

CAsyncSocket::OnOutOfBandData

CAsyncSocket::OnReceive

CAsyncSocket::OnSend