Mögliche Duplizieren:
How do you throttle the bandwidth of a socket connection in C?Wie kann ich die Socket-Geschwindigkeit in C begrenzen?
Ich bin für eine Unix-Umgebung einen einfachen FTP-Server in C zu schreiben. Als eine Funktion des Servers möchte ich die Upload-/Download-Geschwindigkeit eines Benutzers begrenzen.
Gibt es Bibliothekfunktionen, die dieses Problem direkt lösen?
Wenn nicht, welcher Algorithmus wird in einem FTP-Produktionsserver verwendet? Ich habe eine sehr naive Lösung: Berechnen, wie viele Bytes in einer Sekunde, sagen
x
,write(x)
oderread(x)
, und dannsleep(1)
.
Es sollte eine bessere Lösung geben. Noch besser, wenn es Codebeispiele gibt.
Um klar zu sein, ich benutze Mac OS X, aber ich wünschte, es könnte auch unter Ubuntu oder Linux laufen.
* "Als Merkmal des Servers, möchte ich den Upload/Download-Geschwindigkeit eines Benutzers begrenzen" * - Das klingt nach einem tollen Feature –
Auf welchem Betriebssystem bist du? – jman
Diese Frage könnte helfen - http://StackOverflow.com/Questions/235762/how-do-you-Throttle-the-bandwidth-of-a-Socket-connection-in-c –