获取iphone上网流量代码从开机到现在的总流量 总流量和总访客


链接地址:
http://www.cocoachina.com/ask/questions/show/53852/在iPhone或macos中获取进程的上下行流量
代码:
需要包含的头文件:
#include <ifaddrs.h>
//#include <sys/types.h>
#include <sys/socket.h>
#include <net/if.h>
接口:
- (NSArray *)getDataCounters
{
BOOL success;
structifaddrs *addrs;
const structifaddrs *cursor;
const structif_data *networkStatisc;

int WiFiSent= 0;
intWiFiReceived = 0;
int WWANSent= 0;
intWWANReceived = 0;

NSString*name=[[[NSString alloc]init]autorelease];

success =getifaddrs(&addrs) == 0;
if(success)
{
cursor = addrs;
while (cursor != NULL)
{
name=[NSStringstringWithFormat:@"%s",cursor->ifa_name];
NSLog(@"ifa_name %s == %@n",cursor->ifa_name,name);
// names of interfaces: en0 is WiFi ,pdp_ip0 is WWAN

if (cursor->ifa_addr->sa_family ==AF_LINK)
{
if ([name hasPrefix:@"en"])
{
networkStatisc = (const struct if_data *)cursor->ifa_data;
WiFiSent+=networkStatisc->ifi_obytes;
WiFiReceived+=networkStatisc->ifi_ibytes;
NSLog(@"WiFiSent %d==%d",WiFiSent,networkStatisc->ifi_obytes);
NSLog(@"WiFiReceived %d==%d",WiFiReceived,networkStatisc->ifi_ibytes);
}

if ([name hasPrefix:@"pdp_ip"])
{
networkStatisc = (const struct if_data *)cursor->ifa_data;
WWANSent+=networkStatisc->ifi_obytes;
WWANReceived+=networkStatisc->ifi_ibytes;
NSLog(@"WWANSent %d==%d",WWANSent,networkStatisc->ifi_obytes);
NSLog(@"WWANReceived %d==%d",WWANReceived,networkStatisc->ifi_ibytes);
}
}

cursor = cursor->ifa_next;
}

freeifaddrs(addrs);
}

return[NSArray arrayWithObjects:[NSNumber numberWithInt:WiFiSent],[NSNumber numberWithInt:WiFiReceived],[NSNumbernumberWithInt:WWANSent],[NSNumber numberWithInt:WWANReceived],nil];
}
返回的数组就是获得本次开机到现在的流量总数,每次从新开机会清0,至于网上的那些时时监控流量的软件个人觉得原理就是时间控制,并把获得的数据每天都进行汇总并保存到程序的内存中。然后进行分析。根本不存在时时监控。就是说没有程序一直再跑。只是简单的唤起时刷新(查询网络接口,如上所示)已根据appstore上的流量监测软件“流量监测依”的本次开机到现在花费流量进行了验证。
注意:
iphone每一只有一个程序运行,挂在后台的除了音乐,和部分下载任务有十分钟的运行,杂志的系统下载外,其他的都不会运行。不存在时时运行。
上网花费的流量计算方法时:发送的流量+接收的流量,原因都是网络交互,

  

爱华网本文地址 » http://www.aihuau.com/a/25101013/148753.html

更多阅读

大境从民办到重点的历史足迹 历史的足迹

七/1-1大境从民办到重点的历史足迹62年―――79年(17年)1962年3月 大境建校,开展各项筹备工作。建校背景:国家适逢经济困难,又值中、小学入学高峰,为此中央提出“两条腿走路,以公办为主,民办为辅”的办学方针,南市区新办12所民办中学,除大境外

声明:《获取iphone上网流量代码从开机到现在的总流量 总流量和总访客》为网友蓝色心分享!如侵犯到您的合法权益请联系我们删除