Socket Send und Flush



  • Hi zusammen,

    habe folgendes Problem: Ich sende via "send" Daten an einen Socket (TCP). Allerdings scheinen die Daten teilweise gebuffert zu werden. Erst wenn ich die Verbindung mit close trenne, erhält der Client alle Daten. Gibt es eine Möglichkeit nach einem Send ein Flush auszuführen? Ich dachte ein \n führt vielleicht zu einem Flush, jedoch war dem nicht so. Muss ich vielleicht ein \r\n nach jedem Senden anhängen, damit er flusht? Oder gibts dafür einen speziellen Befehl? Habe schon gesucht und bisher nur Möglichkeiten gefunden die Ausgabe für einen Unix Socket zu flushen. Hat jemand eine Idee?

    Danke im voraus

    Mike



  • Ein Flush faellt mir jetzt nicht ein, aber du kann den Buffer verkleinern, um genauere Kontrolle ueber den Stream zu bekommen:

    Schau dir diesen Befehl mal an
    http://mkssoftware.com/docs/man3/setsockopt.3.asp

    TCP_NODELAY koennte auch weiterhelfen


Anmelden zum Antworten