sockets - 在 Golang 中限制 tcp 下载速度

标签 sockets go tcp

我希望能够在我的代码中限制 TCP 连接的带宽。 This问题有一些线索,但不完全是我想要的。我曾尝试使用类似的方法破解 go 标准库(net/tcp 包)的 src 代码,但失败了。 我的主要想法是以某种方式将数据从系统调用缓慢写入内部缓冲区,从而使操作系统丢弃 tcp 数据包。

最佳答案

如评论中所述,最简单的方法是使用 wondershaper 工具在操作系统级别执行此操作。 如果您查看“wondershaper” '脚本,它使用来自'iproute2的'/sbin/tc'命令' 包裹。 我知道这并不是您想要做的,但是您可以通过使用 os.exec() 在源代码中执行“tc”命令来进入较低级别。 实现您自己的“流量控制”算法可能工作量太大,而且对于您的目标而言不是必需的。

关于sockets - 在 Golang 中限制 tcp 下载速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47246030/

相关文章:

java - Apache HttpClient 4.0 无法在 Android 上为套接字超时

javascript - 从 Node js发送udp消息到html

json - 在 Go 中将映射转换为字符串

c - libuv TCP 连接问题

c - 从 socket 到管道的接头卡住

c - Posix AIO 损坏/损坏?

unicode - 不能引用未导出的名称 m.β

go - 内存消耗猛增

c# - TCP 包发送错误

Azure Functions - TCP 持久