Gelöscht
-
...
-
Zeig mal ein bischen Code, aber es klingt nach einem falschen ansatz. Sleep ist fast immer böse. Du möchtest nämlich, dass der pc wartet, aber nicht schläft.
-
...
-
-
Und sieht dein Code wirklich so aus? Also das du die Rückgabewerte von send nicht prüfst? Gerade im Non-Blocking Mode ist das doch unumgänglich.
-
...
-
lies bitte die doku bevor du mit nonblocking sockets hantierst.
-
...
-
Ich kann kein englisch
lol
-
senden Sie Funktion
Die sendenfunktion sendet Daten bezüglich einer verbundenen Einfaßung.
Syntax
C++int senden (
__in STECKDOSE s,
__in const Putzfrau *buf,
__in int len,
__in int-Markierungsfahnen
);Parameter
s [innen]
Ein Schlagwort Identifizierung einer Steckdose verbunden.
buf [innen]Ein Zeiger zu einem Puffer, der die übertragen zu werden Daten enthält.
len [innen]Die Länge, in den Bytes, der Daten im Puffer zeigte auf durch den buf Parameter.
Markierungsfahnen [innen]Ein Satz Markierungsfahnen, die die Weise spezifizieren, in der der Anruf gebildet wird. Dieser Parameter wird von der Anwendung konstruiert, die bitweise sind ODER vom Operator mit irgendwelchen der folgenden Werte.
Wert BedeutungMSG_DONTROUTE
Spezifiziert, dass die Daten nicht abhängig von Wegewahl sein sollten. Ein Windows-EinfaßungsDiensterbringer kann beschließen, diese Markierungsfahne zu ignorieren.
MSG_OOB
Sendet OOB Daten (Stromart Einfaßung wie nur SOCK_STREAM.
Rückholwert
Wenn keine Störung auftritt, schicken Sie Rückkehr die Gesamtzahl den Bytes gesendet, die kleiner als die Zahl sein können, die gefordert wird, in den len Parameter gesendet zu werden. Andernfalls wird ein Wert von SOCKET_ERROR zurückgebracht, und ein spezifischer Störungscode kann zurückgeholt werden, indem man WSAGetLastError benennt.
Störungscode BedeutungWSANOTINITIALISED
Vor der Anwendung dieser Funktion ein erfolgreicher WSAStartup Anruf muss auftreten.
WSAENETDOWN
Das Netzsubsystem ist ausgefallen.
WSAEACCES
Die geforderte Adresse ist eine Sendungsadresse, aber die passende Markierungsfahne wurde nicht eingestellt. Anruf setsockopt mit der SO_BROADCAST Einfaßungswahl, zum des Gebrauches von der Sendungsadresse zu ermöglichen.
WSAEINTR
Ein blockierender Anruf der Windows-Einfaßungen 1.1 wurde durch WSACancelBlockingCall annulliert.
WSAEINPROGRESS
Ein blockierender Anruf der Windows-Einfaßungen 1.1 ist im Gang, oder der Diensterbringer verarbeitet noch eine Wiederholungsbesuchsfunktion.
WSAEFAULT
Der buf Parameter wird nicht vollständig in einem gültigen Teil des BenutzerAdressraumes enthalten.
WSAENETRESET
Der Anschluss hat an der Keep-alivetätigkeit defektes gelegen, die einen Ausfall ermittelt, während der Betrieb im Gang war.
WSAENOBUFS
Kein Pufferraum ist vorhanden.
WSAENOTCONN
Die Einfaßung wird nicht angeschlossen.
WSAENOTSOCK
Der Beschreiber ist nicht eine Einfaßung.
WSAEOPNOTSUPP
MSG_OOB wurde spezifiziert, aber die Einfaßung ist nicht Stromart wie Art SOCK_STREAM, werden OOB Daten nicht in das Kommunikationsgebiet gestützt, das mit dieser Einfaßung verbunden ist, oder die Einfaßung ist in einer Richtung und Unterstützungen empfangen nur Betriebe.
WSAESHUTDOWN
Die Einfaßung ist geschlossen worden; es ist nicht möglich, eine Einfaßung an zu senden, nachdem Abschaltung mit wie Satz zu SD_SEND oder zu SD_BOTH hervorgerufen worden ist.
WSAEWOULDBLOCK
Die Einfaßung wird als nichtblockierendes markiert und der geforderte Betrieb würde blockieren.
WSAEMSGSIZE
Die Einfaßung ist die orientierte Mitteilung, und die Mitteilung ist größer als das Maximum, das durch den zugrunde liegenden Transport gestützt wird.
WSAEHOSTUNREACH
Der Fernwirt kann nicht von diesem Wirt diesmal erreicht werden.
WSAEINVAL
Die Einfaßung ist nicht mit Bindung gesprungen worden, oder eine unbekannte Markierungsfahne wurde spezifiziert, oder MSG_OOB wurde für eine Einfaßung mit ermöglichtem SO_OOBINLINE spezifiziert.
WSAECONNABORTED
Der virtuelle Kreislauf lag an einer Abschaltung oder an anderem Ausfall beendetes. Die Anwendung sollte die Einfaßung schließen, da sie nicht mehr verwendbar ist.
WSAECONNRESET
Der virtuelle Kreislauf wurde durch die Fernseite zurückgestellt, die einen harten oder vorzeitigen Abschluss durchführt. Für UDP-Einfaßungen war der Fernwirt nicht imstande, ein vorher gesendetes UDP-Datengramm zu liefern und reagierte mit einem „unerreichbaren“ ICMP-Portpaket. Die Anwendung sollte die Einfaßung schließen, da sie nicht mehr verwendbar ist.
WSAETIMEDOUT
Der Anschluss ist, wegen einer Netzstörung fallen gelassen worden oder, weil das System am anderen Ende unten ohne Nachricht ging.
Anmerkungen
Die sendenfunktion wird verwendet, um abgehende Daten auf eine verbundene Einfaßung zu schreiben.
Für Mitteilung-orientierte Einfaßungen (Adressenfamilie von AF_INET oder von AF_INET6, Art von SOCK_DGRAM und Protokoll von IPPROTO_UDP, z.B.), muss Sorgfalt angewendet werden, um die maximale Paketgröße des zugrunde liegenden Versorgers nicht zu übersteigen. Die maximale Mitteilungpaketgröße für einen Versorger kann erhalten werden, indem man getsockopt mit dem optname Parametersatz zu SO_MAX_MSG_SIZE benennt, um den Wert der Einfaßungswahl zurückzuholen. Wenn die Daten zu lang sind, durch das zugrunde liegende Protokoll atomar zu überschreiten, wird die Störung WSAEMSGSIZE zurückgebracht, und keine Daten werden übertragen.
Die erfolgreiche Beendigung einer sendenfunktion zeigt nicht an, dass die Daten erfolgreich zur Empfänger geliefert und empfangen wurden. Diese Funktion zeigt nur an, dass die Daten erfolgreich gesendet wurden.
Wenn kein Pufferraum vorhanden innerhalb des Transportsystems ist, die übertragen zu werden Daten zu halten, senden Sie blockiert, es sei denn die Einfaßung in nichtblockierenden Modus gelegt worden ist. Auf dem nichtblockierenden Strom orientiert können Einfaßungen, die Zahl den Bytes geschrieben zwischen 1 und der geforderten Länge, abhängig von Pufferverwendbarkeit auf den Klienten- und Bedienercomputern sein. Die auserwählten, WSAAsyncSelect oder WSAEventSelect Funktionen können verwendet werden, um festzustellen, wann es möglich ist, mehr Daten zu senden.
Das Benennen senden mit einem len Parameter von null ist zulässig und wird behandelt werden mit Implementierungen, wie erfolgreich. In solchen Fällen senden Sie zurückbringt null als gültiger Wert. Für Mitteilung-orientierte Einfaßungen wird ein Nulllänge Transportdatengramm gesendet.
Der Markierungsfahnenparameter kann verwendet werden, um das Verhalten der Funktion über den Wahlen hinaus zu beeinflussen, die für die verbundene Einfaßung spezifiziert werden. Die Semantik der sendenfunktion werden durch alle mögliche Wahlen festgestellt, die vorher auf die Einfaßung eingestellt werden, die im s-Parameter und im Markierungsfahnenparameter geführt werden zur sendenfunktion spezifiziert wird.
-
Die sendenfunktion sendet Daten bezüglich einer verbundenen Einfaßung.
-> xDint senden (
__in STECKDOSE s,
__in const Putzfrau *buf, // <-- moep
__in int len,
__in int-Markierungsfahnen // ^^
);Ein Schlagwort Identifizierung einer Steckdose verbunden.
-> rofl