问题描述
我从 IPv4InterfaceStatistics 类中获得了两个属性,分别是 BytesReceived 和 BytesSent,分别用于获取从接口接收和发送的字节数。
我正在使用 NetworkInterface API 获取所有可用的网络接口。
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
但是 ipv4Stats.BytesSent
和 _ipv4Stats.BytesReceived
总是返回零值。
public override void ViewDidLoad()
{
base.ViewDidLoad();
for (int i = 0; i < 10; i++)
{
CheckUsageNetwork();
Thread.Sleep(1000);
}
}
private void CheckUsageNetwork()
{
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
IPv4InterfaceStatistics _ipv4Stats;
foreach (var nInterface in interfaces)
{
try
{
_ipv4Stats = nInterface.GetIPv4Statistics();
// Hidden speed calculation for brevity
var uploadSpeed = _ipv4Stats.BytesSent;
var downloadSpeed = _ipv4Stats.BytesReceived;
if (uploadSpeed > 0 || downloadSpeed > 0)
{
Console.WriteLine(uploadSpeed + " " + downloadSpeed);
}
}
catch(Exception ex)
{
Console.WriteLine("Exception: {0}",ex);
}
}
}
但是,我在我的 win 项目 (WPF) 中使用了相同的代码,它可以工作。
您能否向我建议如何在我的 Xamarin.Mac 应用程序上获得网络使用上传/下载速度?任何形式的帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)