Suche Möglichkeit um die Bandbreite eines Servers zu regeln
-
Hallo,
wie im Titel schon steht suche ich eine Möglichkeit um unter
Linux einen selbst entwickelten File-server (ANSI C99) mittels Parameterübergabe
die Bandbreite zu regeln.
Danke schon mal im voraus.mfg
-
Du müsstest alle gesendeten Bytes mitzählen.
Immer wenn gewisse Zeit vergangen ist berechnest du den Wert Bytes/Sekunde.
Wenn dieser Wert über deinem Limit ist müsstes du beim nächsten Senden warten bis der Wert unter dem Limit ist.
z.B. - Das Limit ist 1000 Bytes je Sekunde. - In den letzen 2 Sekunden wurden 2500 Byte verschickt --> 1250 Byte/s - Wartezeit = (Byterate-Limit)*Zeitinterval/Limit (1250-1000)*2/1000 = 0.5 - Daraus erbibt sich das du 500 ms warten musst bevor du wieder etwas versendest.
Das Selbe kannst du auch beim empfangen machen.
Das Messinterval solltest du klein genug wählen,
damit das ganze nicht zu stark ruckelt.Wenn du eine schnelle Zeitmessung hast, (z.B. unter Windows mit GetTickCount)
kannst du auch vor jedem Senden die Wartezeit berechen.