可能重复:
如何限制C中套接字连接的带宽?
我正在用C语言为Unix环境编写一个简单的FTP服务器.作为服务器的一项功能,我想限制用户的上传/下载速度.
有没有任何库函数直接解决这个问题?
如果没有,生产FTP服务器中使用的算法是什么?我有一个非常天真的解决方案:计算一秒钟发送多少字节,比如说x
,write(x)
或者read(x)
然后sleep(1)
.
应该有一个更好的解决方案.如果有代码示例则更好.
为了清楚起见,我使用的是Mac OS X,但我希望它也可以在Ubuntu或某些Linux下运行.
我正在创建一个小型网站,并希望使用亚马逊的S3来托管和提供用户上传的图像.然而,我稍微关注带宽使用(和账单),因为我读过一些关于恶意用户发送账单的恐怖故事.显而易见的事情是阻止热链接.但这只会关闭那些只想包含图像的人.仍有可能有人故意提出大量请求.除了在EC2中运行你自己的前端(这有点挫败了S3的目的?!)并运行一个关闭服务的监控脚本有什么我可以做的吗?
我在 IIS7 中使用 ASP.NET,今天我的一个页面中的一个错误导致服务器关闭。该脚本使用 ajax 以每秒 1000 次请求的速度查询资源。请求经过身份验证,因此我知道哪个用户请求了哪个页面。
我的问题是,无论是通过 IHttpModule 还是其他方式,我如何在服务器级别限制允许客户端每秒(或每分钟)发出的最大请求数,然后引入延迟以限制他们的请求?
我是golang的初学者.
有没有办法限制golang的http.Get()带宽使用?我找到了这个:http://godoc.org/code.google.com/p/mxk/go1/flowcontrol,但我不知道如何将两者拼凑在一起.我怎样才能访问http阅读器?
我已将 yt-dlp 实现为 Python 脚本的一部分,它运行良好,但我无法使速率限制功能发挥作用。如果您从 CLI 运行相同的命令,速率会被正确限制,有人能告诉我正确的语法吗?
我尝试了多种组合,例如速率限制、限制速率 0.5m、500k、500KiB、500,但似乎都不起作用
ydl_opts = {
'limit-rate': '500k',
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([link])
Run Code Online (Sandbox Code Playgroud)
我正在使用这里的文档;https://github.com/yt-dlp/yt-dlp 但我很困惑,因为 CLI 命令有效,但嵌入式脚本版本无效,
我也尝试用 _ 替换 - 但仍然没有效果,你有什么想法吗?ydl_opts 中的其他选项可以正常工作
希望我们能够解析正确的语法,而不必实现 Trickle 或限制套接字。
我有一个使用Laravel的API,该API是从另一个带有Guzzle的Laravel实例调用的。
第二台服务器的IP地址正在触发对API的限制。
我想将用户的域和IP地址从第二台服务器传递到API。我希望不要重新编码Throttle中间件。
我想知道以前是否有人遇到过这种情况,以及是否解决过。
API上的中间件组是这样设置的
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'api' => [
'throttle:60,1',
\Barryvdh\Cors\HandleCors::class,
'bindings',
],
];
Run Code Online (Sandbox Code Playgroud)
/**
* Resolve request signature.
*
* @param \Illuminate\Http\Request $request
* @return string
*
* @throws \RuntimeException
*/
protected function resolveRequestSignature($request)
{
if ($user = $request->user()) {
return sha1($user->getAuthIdentifier());
}
if ($route = $request->route()) {
return sha1($route->getDomain().'|'.$request->ip());
}
throw new RuntimeException('Unable to generate the request signature. Route unavailable.');
}
Run Code Online (Sandbox Code Playgroud) 可以使用以下命令在 Linux 中启用 TCP BBR:
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
正如这里所解释的
如何在 Windows 10 计算机上执行相同操作?
我将使用Web框架在PHP中实现一个网站.我从未在PHP中实现过网站...我在学习新语言时没有遇到任何问题.问题是我想知道像Zend,CakePHP这样的框架是否可以用来创建一个页面,让你以给定的速率下载文件(例如50 KB/s)?谢谢.