Detecting network connection speed and bandwidth usage in C#
Is there a way to detect the net开发者_如何学Pythonwork speed and bandwidth usage in C#? Even pointers to open-source components are welcome.
Try using the System.Net.NetworkInformation classes. In particular, System.Net.NetworkInformation.IPv4InterfaceStatistics
ought to have some information along the lines of what you're looking for.
Specifically, you can check the bytesReceived
property, wait a given interval, and then check the bytesReceived
property again to get an idea of how many bytes/second your connection is processing. To get a good number, though, you should try to download a large block of information from a given source, and check then; that way you should be 'maxing' the connection when you do the test, which should give more helpful numbers.
You should be able to calculate everything you need from the IPGlobalStatistics class.
If you only care about the negotiated speed, you can look at the NetworkInterface.Speed property
MSDN NetworkInterface.Speed
精彩评论