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