2014-03-03 49 views
0

我想獲得當前下載/上傳的網絡傳輸速率。這是針對C++遊戲服務器DLL的,其主要目標是最好地預測從服務器中踢出玩家的延遲上限,當他們的延遲太高時。 基本上,玩家的平衡會影響他們的動作流暢性,而較高的等待時間會導致更多的延遲移動,這意味着如果玩家太高,我們就需要擺脫玩家。這主要是爲了讓玩家高興。獲取當前網絡速率

通過遊戲服務器的內部功能,我可以獲得內部進程的上傳/下載速率,但是我無法獲得Windows'。

我看起來幾乎到處都是,並且在幾個月內這樣做了。我能找到的唯一解決方案不起作用,其餘的僅針對Linux。 支持的平臺(如果有要求的話)是Windows Server 2008 R2和Windows 7.編譯器是Microsoft Visual Studio Ultimate 2013的默認編譯器。

編輯

忘了提,我的遊戲服務器DLL最終將在專用服務器上,沒有少於四個IP地址上運行,所以它需要能夠測量連接上傳/下載(在目前的比率)爲所有知識產權集體。

+1

你允許使用.net或只有win-api嗎? – fritzone

+0

我這麼認爲。我無法訪問原理圖,但我認爲應用程序*基於* .net。它是Crysis Wars Dedicated Server V1.5,並且服務器基本上在'/ Mods/[modname]/Bin [32或64]'中查找一個自定義遊戲DLL。我目前正在使用一個名爲SFML的多媒體庫,它允許我擁有天真的FTP功能。不知道這個庫是否覆蓋了入站/出站連接的使用情況。 – cybermonkey

+1

你試過這個:http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterface.speed%28v=vs.110%29.aspx?cs-save-lang=1&cs- lang = cpp#code-snippet-2? – fritzone

回答

0

我發現了一個GUI應用程序,提供相同的功能:

GUI Application

GUI Application Source

我想我應該能夠從這個項目中提取必要的庫,然後用它們在我的自己的項目。 由於我的IP都使用相同的1GBPS網絡接口,因此它應該能夠滿足我的要求。

相關問題