iOS OC 监听当前wifi网速

思路:先获取到总的流量信息,然后用当前的总下行流量减去上一秒的下行流量得到网速!

具体实现在以下三个方法!

//获取下行速度

- (void)getByteRate {

  longlongintrate;

  longlongintcurrentBytes = [selfgetInterfaceBytes];

  if(self.lastBytes) {

  //用上当前的下行总流量减去上一秒的下行流量达到下行速录

  rate = currentBytes -self.lastBytes;

  }else{

  self.isFirstRate=NO;
}
  //保存上一秒的下行总流量
  self.lastBytes= [selfgetInterfaceBytes];

  //格式化一下
  NSString*rateStr = [selfformatNetWork:rate];

  NSLog(@"当前网速%@",rateStr);

self.playerControl.LoadingView.rateLabel.text = [NSStringstringWithFormat:@"%@",rateStr];
}
//获取数据流量详情

- (longlongint)getInterfaceBytes {

  structifaddrs*ifa_list =0, *ifa;

  if(getifaddrs(&ifa_list) == -1) {

   return 0;
  }

  uint32_tiBytes =0;//下行

  uint32_toBytes =0;//上行

  for(ifa = ifa_list; ifa; ifa = ifa->ifa_next) {

  if(AF_LINK!= ifa->ifa_addr->sa_family)

  continue;

  if(!(ifa->ifa_flags&IFF_UP) && !(ifa->ifa_flags&IFF_RUNNING))

  continue;

  if(ifa->ifa_data==0)

  continue;

  if(strncmp(ifa->ifa_name,"lo",2)) {

  structif_data*if_data = (structif_data*)ifa->ifa_data;

  iBytes += if_data->ifi_ibytes;

  oBytes += if_data->ifi_obytes;
  }
  }

  freeifaddrs(ifa_list);
  //返回下行的总流量
  returniBytes;
}
//格式化方法
- (NSString*)formatNetWork:(longlongint)rate {

  if(rate <1024) {

  return[NSStringstringWithFormat:@"%lldB/秒", rate];

  }elseif(rate >=1024&& rate <1024*1024) {

  return[NSStringstringWithFormat:@"%.1fKB/秒", (double)rate /1024];

  }elseif(rate >=1024*1024&& rate <1024*1024*1024){

  return[NSStringstringWithFormat:@"%.2fMB/秒", (double)rate / (1024*1024)];

  }else{
  return@"10Kb/秒";
};
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 思路:先获取到总的流量信息,然后用当前的总下行流量减去上一秒的下行流量得到网速! 具体实现在以下三个方法! //获...
    不会抽烟阅读 1,257评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,937评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,333评论 25 708
  • 猛地睁开眼来,陈涛只感觉自己的心脏砰砰地如经历了一场强烈的刺激,而从心脏里泵出来的血液迅速流到身体每一个部...
    残留的唯美阅读 595评论 15 16
  • 那一夜,几个好友,没有浊酒。 那一夜,路灯比星星亮,笔直的电线杆把路抻的好长好长,长的仿佛一辈子都开不到尽头。 那...
    杨帆叨叨阅读 1,910评论 16 21