Powiel możliwe:
How do you throttle the bandwidth of a socket connection in C?Jak ograniczyć prędkość gniazda w C?
Piszę prosty serwer FTP w C w środowisku Unix. Jako cechę serwera chcę ograniczyć prędkość wysyłania/pobierania użytkownika.
Czy istnieją jakieś funkcje biblioteczne bezpośrednio rozwiązują ten problem?
Jeśli nie, to jaki algorytm jest używany w produkcyjnym serwerze FTP? Mam bardzo naiwne rozwiązanie: obliczyć, ile bajtów wysłać w ciągu sekundy, na przykład
x
,write(x)
lubread(x)
, a następniesleep(1)
.
Powinno być lepsze rozwiązanie. Jeszcze lepiej, jeśli są próbki kodu.
Dla jasności, używam Mac OS X, ale chciałbym, żeby mógł działać również pod Ubuntu lub Linux.
* "Jako funkcję serwera, chcę, aby ograniczyć prędkość wysyłania/pobierania z użytkownikiem" * - To brzmi jak niesamowite cechą –
Na jakim systemie operacyjnym jesteś? – jman
To pytanie może pomóc - http://stackoverflow.com/questions/235762/how-do-you-throttle-the-bandwidth-of-a-socket-connection-in-c –