2012-07-13 64 views
2

我想编写应用程序进程(daemon)在什么背景同步文件并运行。我只想使用一部分带宽(百分比更好,但固定限制是可以接受的),因为完全访问带宽会干扰用户的应用程序。我怎么能做到这一点programmaticaly? IPFW影响的任何应用程序(我想限制只有我的应用程序)和苹果手册页它已经过时了。而且我使用https端口,所以我不能将油门连接到那个端口。 还有其他解决方案吗? 谢谢。带宽限制到我的应用程序在OS X

回答

2

目前尚不清楚,如果这是你知道目标带宽是什么,或情况下,如果这是你不知道的情况下。

如果您知道可用带宽为100KB/s,那么最简单的(也可能是最好的)方法就是在您的应用程序中进行数学计算,并计算您正在读取和写入套接字的数量。这是运行计数器读取的数量和时间,并强制在你的循环睡觉,以确保你达到这些限制的总和。

如果知道目标是什么,(我真的不知道你怎么可以,因为所有的环境是不同的),那么它变得更加复杂一点。大多数应用程序只是为用户提供一种为应用程序选择带宽上限的方法。这是唯一的便携式方式。

对于OS X,只有应用,您可以依赖于特定的附加功能,但OS X已经跨版本跨转变防火墙的实现,他们都没有应用感知防火墙。因此,如果你想使用其功能,从而扼杀你的应用程序,你必须设置基于主机和/或端口有可能只满足您的应用规则。

有,你可以采取实施NETBLT为您的通信协议,而不是普通的TCP,表示你的流量是“批量”或大,延迟不敏感的更深奥的动作。但大多数应用程序只是给用户控制。