CAsyncSocket::OnConnect
Aufgerufen vom Framework, um diese Steckverbindung zu benachrichtigen, dass der Verbindungsversuch abgeschlossen ist, ob erfolgreich oder im Fehler.
virtual void OnConnect(
int nErrorCode
);
Parameter
nErrorCode
Der letzte Fehler auf einem Socket.Die folgenden Fehlercodes gelten für OnConnect die Memberfunktion:0 die Funktion erfolgreich ausgeführt.
WSAEADDRINUSE die angegebene Adresse ist bereits verwendet.
WSAEADDRNOTAVAIL die angegebene Adresse ist nicht vom lokalen Computer verfügbar.
WSAEAFNOSUPPORT Adressen in der angegebenen Kategorie können nicht mit diesem Socket verwendet werden.
WSAECONNREFUSED der Versuch herzustellen stark abgelehnt wurde.
Zieladresse WSAEDESTADDRREQ A ist erforderlich.
WSAEFAULT das lpSockAddrLen-Argument ist falsch.
WSAEINVAL der Socket ist bereits auf einer Adresse gebunden.
WSAEISCONN der Socket ist bereits verbunden.
WSAEMFILE nicht mehr Dateideskriptoren sind verfügbar.
WSAENETUNREACH das Netzwerk kann nicht von diesem Host derzeit erreicht werden.
WSAENOBUFS kein Pufferplatz ist verfügbar.Der Socket kann nicht verbunden werden.
WSAENOTCONN der Socket wird nicht verbunden.
WSAENOTSOCK der Deskriptor ist eine Datei, kein Socket.
WSAETIMEDOUT der Versuch einer Verbindung out Uhrzeit-, ohne eine Verbindung herzustellen.
Hinweise
Hinweis |
---|
In CSocket wird die OnConnect Benachrichtigungsfunktion nie aufgerufen.Für Verbindungen rufen Sie einfach Verbinden auf, die zurückgibt, wenn die Verbindung abgeschlossen wurde (entweder erfolgreich oder im Fehler).Wie Verbindungsbenachrichtigungen bearbeitet werden, ist ein MFC-Implementierungsdetail. |
Weitere Informationen finden Sie unter Windows Sockets: Socket-Benachrichtigungen.
Beispiel
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);
}
Anforderungen
Header: afxsock.h