Freigeben über


CAsyncSocket::Create

Rufen Sie die Erstellen-Memberfunktion auf, nachdem Sie ein Socketobjekt erstellt haben, um den Windows Socket zu erstellen und ihn anzufügen.

BOOL Create(
   UINT nSocketPort = 0,
   int nSocketType = SOCK_STREAM,
   long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE,
   LPCTSTR lpszSocketAddress = NULL 
);

Parameter

  • nSocketPort
    Ein bekannter mit dem Socket Port verwendet werden, oder 0, wenn Sie Windows Sockets einen Port aus.

  • nSocketType
    SOCK_STREAM oder SOCK_DGRAM.

  • lEvent
    Eine Bitmaske, die eine Kombination aus Netzwerkereignissen angibt, für die die Anwendung interessiert ist.

    • FD_READ möchten Benachrichtigung von Bereitschaft zum Lesen empfangen.

    • FD_WRITE möchten Benachrichtigung von Bereitschaft zum Schreiben empfangen.

    • FD_OOB möchten Benachrichtigung des Eingangs von Out-of-Band-Daten empfangen.

    • FD_ACCEPT möchten Benachrichtigung von eingehenden Verbindungen empfangen.

    • FD_CONNECT möchten Benachrichtigung der abgeschlossenen Verbindung empfangen.

    • FD_CLOSE möchten Benachrichtigung über Socketabschlusses empfangen.

  • lpszSockAddress
    Ein Zeiger auf eine Zeichenfolge, die die Netzwerkadresse des verbundenen Sockets, ein durch Punkte getrennte Zahl wie "128.56.22.8" enthält. Die NULL Zeichenfolge für diesen Parameter übergeben wird, gibt die CAsyncSocket-Instanz sollte auf Clientaktivität auf allen Netzwerkschnittstellen überwachen an.

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.

  • WSAEAFNOSUPPORT die angegebene Adressenfamilie wird nicht unterstützt.

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

  • WSAEMFILE nicht mehr Dateideskriptoren sind verfügbar.

  • WSAENOBUFS kein Pufferplatz ist verfügbar.Der Socket kann nicht erstellt werden.

  • WSAEPROTONOSUPPORT der angegebene Port wird nicht unterstützt.

  • WSAEPROTOTYPE der angegebene Port ist der falsche Typ für diesen Socket.

  • WSAESOCKTNOSUPPORT der angegebene Sockettyp wird nicht in diese Adressenfamilie unterstützt.

Hinweise

Erstellen ruft Socket auf und wenn erfolgreich, wird Bind auf, um den Socket zur angegebenen Adresse zu binden.Die folgenden Sockettypen werden unterstützt:

  • Stellt SOCK_STREAM sequenziell geordnet, zuverlässige, Vollduplexe, verbindungsbasierte Byteströme.Verwendet das TCP (Transmission Control Protocol) für die Internetadressenfamilie.

  • SOCK_DGRAM unterstützt Datagramme, die verbindungslose, unzuverlässige Pakete einer festen (in der Regel kleinen) maximalen Länge haben.Verwendet das User Datagram-Protokoll (UDP) für die Internetadressenfamilie.

    HinweisHinweis

    Die Accept-Memberfunktion akzeptiert einen Verweis auf einen neuen, leeren CSocket-Objekt als Parameter.Sie müssen dieses Objekt erstellen, bevor Sie Accept aufrufen.Beachten Sie, dass, wenn dieses Socketobjekt ungültig wird, die Verbindung enthält.Rufen Sie nicht Erstellen für dieses neue Socketobjekt auf.

Wichtiger HinweisWichtig

Erstellen ist ein threadsicheres not.Wenn Sie es in einer Multithreadumgebung ausführen, in der es von verschiedenen Threads gleichzeitig aufgerufen werden kann, sind sicher, jeden Aufruf mit einem Mutex oder anderer Synchronisierungssperre zu schützen.

Weitere Informationen zu Stream und Datagrammsockets, finden Sie in Artikel Windows Sockets: Hintergrund und Windows Sockets: Anschlüsse und Socket-Adressen und Windows Sockets 2 API.

Anforderungen

Header: afxsock.h

Siehe auch

Referenz

CAsyncSocket-Klasse

Hierarchien-Diagramm

CAsyncSocket::Accept

CAsyncSocket::Bind

CAsyncSocket::Connect

CAsyncSocket::GetSockName

CAsyncSocket::IOCtl

CAsyncSocket::Listen

CAsyncSocket::Receive

CAsyncSocket::Send

CAsyncSocket::ShutDown