iOS - 网络流量监控

背景

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

网络端口信息

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

// ifaddrs 用于存储网络接口信息
	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 */   
};   

在这里插入图片描述
上图中:inStream: 下行流量 outStream: 上行流量

附加

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

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

创建全局的接口监视器对象path_monitor_t,通过nw_path_monitor_set_update_handler()函数回调监听获取端口类型以便见识网络类型的变换。
在这里插入图片描述

资源

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值