iOS检测连接速度或类型

Joh*_*ane 9 iphone objective-c reachability ios

可能重复:
Iphone检测到3g或wifi

有没有办法获得当前的网络速度或设备是否在EDGE/3G/GPRS?我可以使用Reachability来区分WiFI和WMAN,但这对我的应用来说还不够.

Jef*_*mas 11

如果你真的需要知道,你将不得不进行测试.

设置与具有低延迟的已知服务器的连接.在单独的线程中,标记时间(时间A)并发送数据包(确保它是一个数据包).等待那个线程.标记第一个数据包的时间(时间B).读取数据直到完成.标记最后一个数据包的时间(时间C).确保服务器响应至少包含三个数据包.

时间B - 时间A是对延迟的非常粗略的估计.时间C - 时间B是对带宽的粗略估计.

因为您希望尽可能准确,所以使用您可用的最低级别的网络访问(我相信iPhone这是套接字).使用固定长度的随机数据块作为您的请求和响应.请求的几个字节就足够了,但响应需要很好地构建.确保服务器发送一个小的第一个数据包,然后发送一个足够大的数据包序列来填充三个或更多.

那时你需要测试.测试,测试,测试和测试.测试不同的网络类型,使用不同的网络流量进行测试,使用交换网络进行测试,并测试您能想到的任何其他内容.