我想编写同步文件并在后台运行的应用程序(守护进程)。而且我只想使用一部分带宽(百分比更好,但可以接受固定限制),因为完全访问带宽会干扰用户的应用程序。我怎样才能以编程方式做到这一点?ipfw 会影响任何应用程序(我只想限制我的应用程序),并且在苹果手册页中它已被弃用。而且我使用 https 端口,所以我不能只限制与该端口的连接。还有其他解决方案吗?谢谢你。
问问题
443 次
1 回答
2
目前尚不清楚这是您知道目标带宽是多少的情况,还是您不知道的情况。
如果您知道可用带宽为 100KB/s,那么最简单(可能也是最好)的做法是在您的应用程序中进行数学运算并测量您正在读取和写入套接字的数量。那是运行读取量和经过时间的计数器,并在循环中强制休眠以确保您总体上达到这些限制。
如果您不知道目标是什么,(鉴于所有环境都不同,我真的不知道您怎么做)那么它会变得更加复杂。大多数应用程序只是为用户提供了一种选择应用程序带宽上限的方法。这是唯一的便携方式。
对于仅限 OS X 的应用程序,您可以依赖特定的附加功能,但 OS X 已经跨版本跨防火墙实现转换,它们不是应用程序感知防火墙。因此,如果您想使用它们的功能来限制您的应用程序,您将必须基于可能仅与您的应用程序匹配的主机和/或端口设置规则。
您可以采取更多深奥的操作来实现 NETBLT 作为您的通信协议,而不是普通的 TCP,以表明您的流量是“大容量”或大且对延迟不敏感。但大多数应用程序只是让用户控制。
于 2012-12-31T18:55:50.960 回答