2012-07-02 37 views
3

我已經編寫了一個Java服務器,將有幾個客戶端連接到它。我希望能夠看到向每個客戶端發送了多少數據,以便能夠做出決定,例如允許更多的客戶端或減少它們,甚至增加/減少數據發送的頻率。 我該怎麼做?在幾個java套接字中測量帶寬/速度?

我目前正在使用Java的Socket API,但如果任何其他庫容易地給我這個,那麼可以做一個改變。該服務器將運行在Linux的味道,可能是Ubuntu,所以也歡迎操作系統特定的答案。

回答

2

當您向套接字寫入數據時,您需要記住您發送的數據量。真的沒有更聰明的方法來做到這一點。

一般而言,您將允許服務器具有有限數量的連接。試圖根據帶寬限制來調整系統是非常困難的。

+0

有沒有一種方法可以知道有多少數據包用於發送該數據,以便將其頭部大小添加到數據傳輸/秒的計算中? – efaj

+0

您可以通過嗅探網絡適配器來確定數據包的數量和大小。 –