2012-07-13 67 views
2

我想編寫應用程序進程(daemon)在什麼背景同步文件並運行。我只想使用一部分帶寬(百分比更好,但固定限制是可以接受的),因爲完全訪問帶寬會干擾用戶的應用程序。我怎麼能做到這一點programmaticaly? IPFW影響的任何應用程序(我想限制只有我的應用程序)和蘋果手冊頁它已經過時了。而且我使用https端口,所以我不能將油門連接到那個端口。 還有其他解決方案嗎? 謝謝。帶寬限制到我的應用程序在OS X

回答

2

目前尚不清楚,如果這是你知道目標帶寬是什麼,或情況下,如果這是你不知道的情況下。

如果您知道可用帶寬爲100KB/s,那麼最簡單的(也可能是最好的)方法就是在您的應用程序中進行數學計算,並計算您正在讀取和寫入套接字的數量。這是運行計數器讀取的數量和時間,並強制在你的循環睡覺,以確保你達到這些限制的總和。

如果知道目標是什麼,(我真的不知道你怎麼可以,因爲所有的環境是不同的),那麼它變得更加複雜一點。大多數應用程序只是爲用戶提供一種爲應用程序選擇帶寬上限的方法。這是唯一的便攜式方式。

對於OS X,只有應用,您可以依賴於特定的附加功能,但OS X已經跨版本跨轉變防火牆的實現,他們都沒有應用感知防火牆。因此,如果你想使用其功能,從而扼殺你的應用程序,你必須設置基於主機和/或端口有可能只滿足您的應用規則。

有,你可以採取實施NETBLT爲您的通信協議,而不是普通的TCP,表示你的流量是「批量」或大,延遲不敏感的更深奧的動作。但大多數應用程序只是給用戶控制。