iOS - 网络流量监控

背景

应用程序中,聊得最多的话题就是网络,毕竟网络是前端和后端数据传输的核心,那怎么去判断网络的好坏呢,那就是通过网速,网速受到很多方面的影响,例如:基站数、发起通讯数目、硬件性能等等。
在开发测试中,菊花等待框并不能直观的展示出来网速的快慢,最直观的那就只有数字大小。

网络端口信息

C语言 ==getifaddrs()==函数,它可以查找到系统所有的网络接口的信息,包括以太网卡接口和回环接口等。
struct ifaddrs

{
struct ifaddrs ifa_next; / Next item in list */
char ifa_name; / Name of interface(接口名称) /
unsigned int ifa_flags; /
Flags from SIOCGIFFLAGS */
struct sockaddr ifa_addr; / Address of interface */
struct sockaddr ifa_netmask; / Netmask of interface */
union
{
struct sockaddr ifu_broadaddr; / Broadcast address of interface */
struct sockaddr ifu_dstaddr; / Point-to-point destination address */
} ifa_ifu;
#define ifa_broadaddr ifa_ifu.ifu_broadaddr
#define ifa_dstaddr ifa_ifu.ifu_dstaddr
void ifa_data; / Address-specific data */
};

iOS - 网络流量监控_第1张图片
上图中:inStream: 下行流量 outStream: 上行流量

附加

网络连接中,我们偶尔也会碰到网络类型的切换,比如蜂窝网络切换wifi、无网络状态等等。AFNetworking库中AFNetworkReachabilityManager已经很好的封装了监测网络类型转变的Block。

但是,通过#import 库中的path_monitor.h也可以实现对网络类型转变的监听。
在这里插入图片描述

创建全局的接口监视器对象path_monitor_t,通过nw_path_monitor_set_update_handler()函数回调监听获取端口类型以便见识网络类型的变换。
iOS - 网络流量监控_第2张图片

资源

Demo地址:https://github.com/ChengJingH/NetworkMonitor

你可能感兴趣的:(iOS)