- 原理
(上一個(gè)時(shí)間節(jié)點(diǎn)的數(shù)據(jù) - 下一時(shí)間節(jié)點(diǎn)的數(shù)據(jù))/ 時(shí)間間隔 = 速率
- 獲取下行流量數(shù)據(jù)
- (long long)getInterfaceBytes {
struct ifaddrs* addrs;
const struct ifaddrs* cursor;
long long currentBytesValue = 0;
if (getifaddrs(&addrs) == 0) {
cursor = addrs;
while (cursor != NULL) {
const struct if_data* ifa_data = (struct if_data*)cursor->ifa_data;
if (ifa_data) {
// total number of octets received
int receivedData = ifa_data->ifi_ibytes;
currentBytesValue += receivedData;
}
cursor = cursor->ifa_next;
}
}
freeifaddrs(addrs);
return currentBytesValue;
}
- 字節(jié)轉(zhuǎn)換
- (NSString *)formatNetWork:(long long int)rate {
if (rate <1024) {
return [NSString stringWithFormat:@"%lldB/S", rate];
} else if (rate >=1024&& rate <1024*1024) {
return [NSString stringWithFormat:@"%.1fKB/S", (double)rate /1024];
} else if (rate >=1024*1024&& rate <1024*1024*1024) {
return [NSString stringWithFormat:@"%.2fMB/S", (double)rate / (1024*1024)];
} else {
return@"0Kb/S";
};
}