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 Bedeutung

    MSG_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 Bedeutung

    WSANOTINITIALISED

    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.
    -> xD

    int senden (
    __in STECKDOSE s,
    __in const Putzfrau *buf, // <-- moep 😛
    __in int len,
    __in int-Markierungsfahnen // ^^
    );

    Ein Schlagwort Identifizierung einer Steckdose verbunden.
    -> rofl


Anmelden zum Antworten