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.
Hinweis 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.
Wichtig |
---|
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