CAsyncSocket::Accept

Rufen Sie die Memberfunktion auf, um eine Verbindung auf einem Socket zu akzeptieren.

virtual BOOL Accept(
   CAsyncSocket& rConnectedSocket,
   SOCKADDR* lpSockAddr = NULL,
   int* lpSockAddrLen = NULL 
);

Parameter

  • rConnectedSocket
    Ein Verweis, der einen neuen Socket identifiziert, der für Verbindung verfügbar ist.

  • lpSockAddr
    Ein Zeiger auf eine SOCKADDR-Struktur, die die Adresse der Steckverbindung empfängt, wie wird im Netzwerk.Das genaue Format des lpSockAddr-Arguments wird durch die festgelegten Adressenfamilie bestimmt, als der Socket erstellt wurde.Wenn lpSockAddr und/oder lpSockAddrLen gleich NULL sind, werden keine Informationen über den Adresse des akzeptierten Sockets zurückgegeben.

  • lpSockAddrLen
    Ein Zeiger auf die Länge der Adresse in lpSockAddr in Bytes.lpSockAddrLen ist ein Wertergebnis Parameter: es sollte den Platz zunächst zu, der durch dargestellt wird, lpSockAddr bei Rückgabe enthält er die tatsächliche Länge (in Bytes) der zurückgegebenen Adresse.

Rückgabewert

ungleich 0 (null), wenn die Funktion erfolgreich; andernfalls 0 und ein bestimmter Fehlercode können abgerufen werden, indem Sie GetLastError aufruft.Die folgenden Fehler gelten für diese Memberfunktion zu:

  • Vor der Verwendung dieser APIs WSANOTINITIALISED einem erfolgreichen AfxSocketInit muss auftreten.

  • WSAENETDOWN, das die Windows Socket-Implementierung hat, dass das Netzwerksubsystem fehlgeschlagen ist.

  • WSAEFAULT das lpSockAddrLen-Argument ist zu klein (kleiner als die Größe einer SOCKADDR-Struktur).

  • Ist blockierenden Windows Socket-Aufruf WSAEINPROGRESS A ausgeführt.

  • WSAEINVAL   Listen wurde nicht vor akzeptieren aufgerufen.

  • WSAEMFILE die Warteschlange ist nach Eintrag leer zu akzeptieren und es gibt keine verfügbaren Deskriptoren.

  • WSAENOBUFS kein Pufferplatz ist verfügbar.

  • WSAENOTSOCK der Deskriptor ist kein Socket.

  • WSAEOPNOTSUPP der referenzierte Socket ist kein Typ, der verbindungsorientierten Dienst unterstützt.

  • WSAEWOULDBLOCK der Socket wird nicht als blockiert markiert und keine Verbindungen sind vorhanden akzeptiert zu werden.

Hinweise

Diese Routine extrahiert die erste Verbindung in der Warteschlange von ausstehenden Verbindungen, erstellt einen neuen Socket mit den gleichen Eigenschaften wie dieser Socket und fügt ihn zu rConnectedSocket an.Wenn keine ausstehenden Verbindungen in der Warteschlange vorhanden sind, gibt Accept null zurück und GetLastError gibt einen Fehler zurück.Der akzeptierte Socket (rConnectedSocket) kann nicht verwendet werden, um mehr Verbindungen zu akzeptieren.Der ursprüngliche Socket bleibt geöffnet und Lauschen.

Das Argument lpSockAddr ist ein Ergebnisparameter, der mit der Adresse der Steckverbindung gefüllt wird, wie wird die Kommunikation überlagern.Accept wird mit verbindungsbasierten Sockettypen wie SOCK_STREAM verwendet.

Anforderungen

Header: afxsock.h

Siehe auch

Referenz

CAsyncSocket-Klasse

Hierarchien-Diagramm

CAsyncSocket::Bind

CAsyncSocket::Connect

CAsyncSocket::Listen

CAsyncSocket::Create

WSAAsyncSelect