【发布时间】:2012-05-24 14:26:55
【问题描述】:
可能重复:
How do you throttle the bandwidth of a socket connection in C?
我正在用 C 语言为 Unix 环境编写一个简单的 FTP 服务器。作为服务器的一项功能,我想限制用户的上传/下载速度。
有没有直接解决这个问题的库函数?
如果不是,生产 FTP 服务器中使用的算法是什么?我有一个非常幼稚的解决方案:计算一秒钟要发送多少字节,比如
x、write(x)或read(x),然后是sleep(1)。
应该有更好的解决方案。如果有代码示例就更好了。
明确地说,我使用的是 Mac OS X,但我希望它也可以在 Ubuntu 或某些 Linux 下运行。
【问题讨论】:
-
“作为服务器的一项功能,我想限制用户的上传/下载速度” - 这听起来是个很棒的功能
-
这个问题可能会有所帮助 - stackoverflow.com/questions/235762/…
-
@skjaidev 我正在使用 Mac OS X,但我希望它也可以在 Ubuntu 或其他东西下运行
-
啊啊啊啊!!!不要做“睡眠(1)”。 请不要做“睡眠(1)”! ;) 查看您的操作系统在 QoS 和限制功能方面提供了什么(您没有提及您正在运行的操作系统)。
-
你可能还想看看“tcpnice”:cs.utexas.edu/users/dahlin/software/2002-nice.html
标签: c performance sockets ftp bandwidth-throttling