Wenn kein Fehler auftritt, gibt die Gesamtzahl der Zeichen gesendet Senden zurück. (Beachten Sie, dass dies weniger als die von nBufLenangegebene Anzahl sein kann.) Andernfalls ist der Wert SOCKET_ERROR zurückgegeben, und ein Fehlercode kann durch Aufrufen von GetLastErrorabgerufen werden. Wenden Sie die folgenden Fehler auf dieser Member-Funktion:
WSA&NOTINITIALISEDNbsp; Eine erfolgreiche AfxSocketInit muss vor der Verwendung dieser API auftreten.
WSAE&NETDOWNNbsp; Die Windows Sockets-Implementierung hat festgestellt, dass das Netzwerk-Subsystem fehlgeschlagen.
WSAEACCES&Nbsp; Die angeforderte Adresse ist eine broadcast-Adresse, aber das entsprechende Flag wurde nicht festgelegt.
WSAEI&NPROGRESSNbsp; Ein sperrender Windows Sockets-Vorgang wird ausgeführt.
WSAEFAULT&Nbsp; Das LpBuf -Argument ist nicht in einem gültigen Teil des Benutzer-Adressraums.
WSAE&NETRESETNbsp; Die Verbindung muss zurückgesetzt werden, da es die Windows Sockets-Implementation gelöscht.
WSAE&NOBUFSNbsp; Die Windows Sockets-Implementierung meldet einen Puffer-deadlock.
WSAE&NOTCONNNbsp; Der Socket ist nicht verbunden.
WSAE&NOTSOCKNbsp; Die Beschreibung ist kein socket.
WSAEOP&NOTSUPPNbsp;MSG_OOB wurde angegeben, aber der Socket nicht vom Typ SOCK_STREAM ist.
WSAESHUTDOW&NNbsp; Der Socket wurde heruntergefahren worden; Es ist nicht möglich, auf einem Socket aufrufen Senden , nachdem Herunterfahren been mit nHow festgelegt auf 1 oder 2 invoked has.
WSAEWOULDBLOCK&Nbsp; Der Socket ist markiert als nicht blockierenden und der angeforderte Vorgang würde blockieren.
WSAEMSGSIZE&Nbsp; Die Buchse ist vom Typ SOCK_DGRAMund das Datagramm ist größer als das Maximum von der Windows Sockets-Implementierung unterstützt.
WSAEI&NVALNbsp; Der Socket wurde nicht mit binden gebunden.
WSAECO&NNABORTEDNbsp; Der virtual Circuit wurde aufgrund von Zeitüberschreitung oder anderer Fehler abgebrochen.
WSAECO&NNRESETNbsp; Der virtual Circuit wurde durch die Remoteseite zurückgesetzt.
Parameter
lpBuf
Ein Puffer mit den Daten übertragen werden.
nBufLen
Die Länge der Daten in LpBuf in Byte.
nFlags
Gibt an, wie in dem der Aufruf vorgenommen wurde. Die Semantik dieser Funktion werden durch die Socket-Optionen und des nFlags -Parameters bestimmt. Letzteres wird erstellt, indem die folgenden Werte mit dem C++- oder -Operator kombiniert:
MSG_DO&NTROUTENbsp; Gibt an, dass die Daten nicht routing unterliegen sollten. Ein Windows Sockets-Lieferanten können Sie dieses Flag zu ignorieren; Siehe auch die Diskussion über die Option SO_DONTROUTE in Windows Sockets Programmieren Überlegungen in der Win32 SDK-Dokumentation.
MSG_OOB&Nbsp; Senden von Out-of-Band-Daten (nurSOCK_STREAM ).
Bemerkungen
Rufen Sie diese Memberfunktion um Daten über einen verbundenen Socket zu senden. Senden wird verwendet, um ausgehende Daten auf angeschlossenen Stream oder Datagrammsockets zu schreiben. Für Datagrammsockets muss darauf geachtet werden, nicht zu überschreiten die maximale IP-Paketgröße der zugrunde liegenden Subnetze, die durch das iMaxUdpDg -Element in der Struktur des WSADATA zurückgegebener AfxSocketInitgegeben ist. Wenn die Daten des zugrunde liegenden Protokolls atomar passieren zu lang ist, wird der Fehler WSAEMSGSIZE über GetLastErrorzurückgegeben und keinerlei Daten übermittelt.
Anmerkung, die für ein Datagramm socket-den erfolgreichen Abschluss einer Senden bedeutet nicht, dass die Daten erfolgreich übermittelt wurde.
CAsyncSocket -Objekte vom Typ SOCK_STREAMkann die Anzahl der geschriebenen Bytes zwischen 1 und die angeforderte Länge, je nach Verfügbarkeit der Puffer auf den lokalen und ausländischen Hosts sein.