请问C#中怎么检测现有当前网络速度并返回速度大小

木木辉 2014-06-25 08:12:51
请问C#中怎么检测现有当前网络速度并返回速度大小
...全文
2179 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
save4me 2014-06-30
  • 打赏
  • 举报
回复
第一个我下载下来使用它的demo程序可以运行的,不知道是不是下载的时候出现了什么错误。
不过没关系,前几天有出来了一个新的开源代码,下面是链接和软件截图。我现在下载编译了可以正常运行。
多网卡实时流量图显示



另外现成类似的免费软件还有NetWorx
木木辉 2014-06-29
  • 打赏
  • 举报
回复
引用 2 楼 save4me 的回复:
一般有两种方法,一个是调用WinAPI iphlpapi,参考:http://www.cnblogs.com/lemony/archive/2007/03/29/692967.html在C#中调用API获取网络信息和流量,另外一种使用WMI和PerformanceCounter查询,参考: Monitoring network speed
第二种方法代码压缩包破损了,第一种老是有些东西识别不了
save4me 2014-06-27
  • 打赏
  • 举报
回复
楼主应该是要知道在本机上的网络速度吧,可能就像360那种上传速度,下载速度之类的。如果是这样的话,跟几方决定没有什么大关系,因为是想知道一个事实数据,不是说怎么提高网速。
引用 6 楼 caozhy 的回复:
[quote=引用 5 楼 u014474572 的回复:] [quote=引用 4 楼 caozhy 的回复:] 你需要有一个服务器作为测试对象,下载一个指定大小的文件,用文件大小除以耗费的时间(秒)再乘以8就是多少kb/s
这个我知道,但有没有C#直接用得出网络速度的函数[/quote] 不可能有,因为我已经分析了,网速是双方共同决定的。[/quote]
save4me 2014-06-27
  • 打赏
  • 举报
回复
当前网卡的接受和发送数据包来计算的速度,不是最高速度,也不是连接某个网站上传和下载的速度。 360都是忽悠,我只是印象中它会在屏幕上出个悬浮框来显示上传:00KB/S,下载: 00KB/S,举个例子想说是不是要的这种效果。不是360的数据是怎么算出来的或者是否准确。
引用 8 楼 Z65443344 的回复:
你的想法是错误的.理论上电脑网卡最高速度是100M,但是上网速度没有几个人能达到100M的. 取决于你办理的网络宽带的带宽,还有服务器所在网络. 这些都不是电脑的固有属性,不测试是无法获取到的. 360测网速也是向360服务器提交一个申请,然后获取数据流,再计算平均网速.
暈哥 2014-06-27
  • 打赏
  • 举报
回复
8楼, 谁告诉你“电脑网卡最高速度是100M”的 10、100、1000、10000速率的都有,它们的单位是Mbps,熟称“小b” 而我们常说的下载速度指的是“大B”,需要除以8,其实就是bit与byte的关系
暈哥 2014-06-27
  • 打赏
  • 举报
回复
引用 14 楼 u014474572 的回复:
[quote=引用 13 楼 lineages 的回复:] SharpPcap,基于winpcap
调用里面什么函数来测网络速度的[/quote] 你先搜一下是什么东西,没有简单到一个函数可以搞定的地步 大致用法:你需要指定拦截的网卡,设置数据包的过滤规则,监听数据包被拦截的事件,最后根据你的需求来处理数据包
木木辉 2014-06-27
  • 打赏
  • 举报
回复
引用 13 楼 lineages 的回复:
SharpPcap,基于winpcap
调用里面什么函数来测网络速度的
暈哥 2014-06-27
  • 打赏
  • 举报
回复
SharpPcap,基于winpcap
木木辉 2014-06-27
  • 打赏
  • 举报
回复
引用 6 楼 caozhy 的回复:
[quote=引用 5 楼 u014474572 的回复:] [quote=引用 4 楼 caozhy 的回复:] 你需要有一个服务器作为测试对象,下载一个指定大小的文件,用文件大小除以耗费的时间(秒)再乘以8就是多少kb/s
这个我知道,但有没有C#直接用得出网络速度的函数[/quote] 不可能有,因为我已经分析了,网速是双方共同决定的。[/quote] 就是得出实时网络速度,类似于360那个浮窗显示那个
於黾 2014-06-27
  • 打赏
  • 举报
回复
哦,是我理解错了. 楼主想知道当前上网的实时速度,而不是最高网速. 抱歉.
於黾 2014-06-27
  • 打赏
  • 举报
回复
引用 7 楼 save4me 的回复:
楼主应该是要知道在本机上的网络速度吧,可能就像360那种上传速度,下载速度之类的。如果是这样的话,跟几方决定没有什么大关系,因为是想知道一个事实数据,不是说怎么提高网速。 [quote=引用 6 楼 caozhy 的回复:] [quote=引用 5 楼 u014474572 的回复:] [quote=引用 4 楼 caozhy 的回复:] 你需要有一个服务器作为测试对象,下载一个指定大小的文件,用文件大小除以耗费的时间(秒)再乘以8就是多少kb/s
这个我知道,但有没有C#直接用得出网络速度的函数[/quote] 不可能有,因为我已经分析了,网速是双方共同决定的。[/quote][/quote] 你的想法是错误的.理论上电脑网卡最高速度是100M,但是上网速度没有几个人能达到100M的. 取决于你办理的网络宽带的带宽,还有服务器所在网络. 这些都不是电脑的固有属性,不测试是无法获取到的. 360测网速也是向360服务器提交一个申请,然后获取数据流,再计算平均网速.
jiaoshiyao 2014-06-27
  • 打赏
  • 举报
回复
这个只能连服务器
threenewbee 2014-06-26
  • 打赏
  • 举报
回复
引用 5 楼 u014474572 的回复:
[quote=引用 4 楼 caozhy 的回复:] 你需要有一个服务器作为测试对象,下载一个指定大小的文件,用文件大小除以耗费的时间(秒)再乘以8就是多少kb/s
这个我知道,但有没有C#直接用得出网络速度的函数[/quote] 不可能有,因为我已经分析了,网速是双方共同决定的。
木木辉 2014-06-26
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
你需要有一个服务器作为测试对象,下载一个指定大小的文件,用文件大小除以耗费的时间(秒)再乘以8就是多少kb/s
这个我知道,但有没有C#直接用得出网络速度的函数
threenewbee 2014-06-25
  • 打赏
  • 举报
回复
你需要有一个服务器作为测试对象,下载一个指定大小的文件,用文件大小除以耗费的时间(秒)再乘以8就是多少kb/s
木木辉 2014-06-25
  • 打赏
  • 举报
回复
引用 2 楼 save4me 的回复:
一般有两种方法,一个是调用WinAPI iphlpapi,参考:http://www.cnblogs.com/lemony/archive/2007/03/29/692967.html在C#中调用API获取网络信息和流量,另外一种使用WMI和PerformanceCounter查询,参考: Monitoring network speed
谢了我试试先
save4me 2014-06-25
  • 打赏
  • 举报
回复
一般有两种方法,一个是调用WinAPI iphlpapi,参考:http://www.cnblogs.com/lemony/archive/2007/03/29/692967.html在C#中调用API获取网络信息和流量,另外一种使用WMI和PerformanceCounter查询,参考: Monitoring network speed
木木辉 2014-06-25
  • 打赏
  • 举报
回复
像具体点返回多少kb/s的样子

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧