UDP sendto blocking
-
Hallo
Benutzt wird Linx Mint 17 und C++.
Ist es möglich einen UDP Socket zu einzustellen, dass die sendto Funktion (UDP) blockierend ist?
Zur Zeit ist es möglich, dass eine Datenmengen per sendto in einer for Schleife schneller gesendet werden wie die Netzwerkverbidnung des PC es physikalisch erlaubt. (z.B. 2 Mbyte werden im bruchteil einer Sekunde gesendet, obwohl nur eine UMTS Verbindung vorhanden ist)
Dies liegt wahrscheinlich daran, weil das Betriebssystem und der Netzwerk Stack Buffer hat.
Ist dieses zwischenspeichern abschaltbar?
Die sendto Funktion soll erst zurückkommen, wenn die Daten wirklich physikalisch gesendet wurden.
Welche Möglichkeiten gibt es da?Danke
-
prüfst du auch den Rückgabewert von sendto, ob dieser gültig ist ?
-
Unter Linux musst du die UDP sockets erst writtable machen bevor du da senden kannst. Fällt mir gerade ein.
Mit fcntl geht das glaube ich. Na ich habs immer so gemacht.