SimplePing的使用
来源:互联网 发布:美孚齿轮油632数据 编辑:程序博客网 时间:2024/05/14 21:49
SimplePing是苹果封装好的关于Ping的类,研究wifi的时候顺带研究下这个类,关于什么是ping以及一些基本用法可以翻看我的博客。下面切入主题:
SimplePing是一个封装低层级的BSD Sockets ping函数的类。
使用这个类创建实例,设置委托然后调用 -start 方法开始在当前的run loop(运行循环)中。
如果顺利的话你很快就会得到 -simplePing:didStartWithAddress: 这个委托的回调。
之后在这个回调里你就可以调用 -sendPingWithData: 来发送一个ping,然后等待接收回调 -simplePing:didReceivePingResponsePacket:sequenceNumber: 和 -simplePing:didReceiveUnexpectedPacket: 。
这个类可以在任何线程上使用,但是用作单例必须限制在指定的开启运行循环的线程。
下面介绍这个类中的方法:
- (instancetype)initWithHostName:(NSString *)hostName
初始化这个对象来ping指定的主机,hostName:要ping的主机的域名,一个IPv4或IPv6的字符串类型地址。
SimplePingDelegate
调用 -start 方法后,在线程的默认运行循环模式下相应的回调。- (void)start;
开始对象,在调用这个方法之前,你应该设置委托和其他参数。如果顺利的话你将会得到
-simplePing:didStartWithAddress: 这个回调,在这个方法内部你可以开始发送pings(
执行-sendPingWithData: 方法),然后通过回调 -simplePing:didReceivePingResponsePacket:sequenceNumber:开始接收ICMP数据包(ping响应),或者回调-simplePing:didReceiveUnexpectedPacket:(返回异常的包,说明有异常)。
如果对象开始失败,通常是因为hostName,你将受到
-simplePing:didFailWithError:这个回调。不要重复调用- (void)start;
- (void)sendPingWithData:(nullableNSData *)data;
发送一个包含指定数据的ping包,发送一个真实的ping,当你调用这个方法的时候,SimplePing的对象必须已经调用了- (void)start;- (void)start;调用之后,你必须等待-simplePing:didStartWithAddress:的到来才可以使用这个方法,
参数data为nil代表你想让包包括一个标准56位有效荷载。(导致一个标准的64位ping)
- (void)stop;
停止这个对象,当你的ping结束之后你才调用这个方法,可以重复调用。SimplePingDelegate协议的相关方法
- (void)simplePing:(SimplePing *)pinger didStartWithAddress:(NSData *)address;
一个SimplePing委托回调,- (void)start;被调用之后这个回调会被调用一次。待续...SimplePing可以百度下载...
- SimplePing的使用
- SimplePing
- IOS 一个ping的例子 simplePing
- IOS 一个ping的例子 simplePing
- ios学习笔记---simpleping
- GUID使用的使用
- ${}的使用
- 的使用
- @[],@()的使用
- ->的使用
- +、-、*、/、%的使用
- &&的使用
- %:的使用
- Makefile中使用$$的使用
- Makefile中使用$$的使用
- Red5的使用--使用日志
- prefernce的使用具体使用
- 【工具使用】git 的使用
- Spark性能优化
- 掷骰子——柱状图
- “创新基因一直植根于企业发展之中”——海航集团创新发展走出世界级品牌之路
- Codeforces #297 (Div. 2) B. Pasha and String (贪心
- Android项目实战:自定义不可滑动的ListView和GridView
- SimplePing的使用
- char *n="hello"和char a[]="hello"的区别
- bzoj 3930: [CQOI2015]选数 (杜教筛+反演)
- 数据挖掘读书笔记-认识数据
- MySQL数据库存储过程
- POJ 3320 Jessica's Reading Problem(尺取)
- C++数组元素初始化时,若没有显式提供元素初值,则元素会被像普通变量一样初始化
- poj 1751 Highways(Kruskal)
- TensorFlow 学习(十二)—— 高级函数