iOS-UDP无线局域网通讯的简单使用

iOS-UDP无线局域网通讯的简单使用,第1张

UDP(User Data Protocol,用户数据报协议)是与TCP相州谈对应的协议。它是面向非连接的协议,UDP传送数据不需要和服务器连接,只需要知道ip和监听端口,不需要链接没有目的的socket,只是将数据报投递出去,不管接收方是否成功接收到,因此是一种不可靠的传输。但是UDP的开销更小数据传输速率更高,因为不必进行收发数据的确认,所以UDP的实时性更好。

1.无连接,发送数据之前不需要建立连接。开销和发送之前的时间延迟较短。 2.尽最大努力交付。(可以采取一定策略实现可靠传输) 3.面向报文,UDP对应用程序交付的报文,添加UDP首部后直接交给IP层。不链册合并,不拆分。 4.没有拥塞控制,网络拥塞不会使源主机发送率降低。 5.UDP支持一对一,一对多棚迹宏,多对一的交互通信 6.UDP首部开销较小,8字节(TCP为20字节、IP为20字节)

1.AsyncUdpSocket

2.GCDAsyncUdpSocket

在项目中,所用到的类库是AsyncUdpSocket,所以这里基于AsyncUdpSocket对UDP开发做一个简单的文档说明:

1.将AsyncUdpSocket.h, AsyncUdpSocket.m文件拷贝到项目中。在项目target ->build phases ->compile sources ->AsyncUdpSocket文件后面加入 -fobjc-arc ,这是为了使编译器编译的时候将此文件在arc的条件下编译。

2.添加CFNetwork.framework

初始化socket,设置代理,绑定端口号

心跳包就是广播255.255.255.255,确保在同一局域网的都能收到心跳

AsyncUDPSocketDelegate的代理方法

传送门

代码就算了。搜索一下,大把UDP的实现的。

客户端,定时给服务器发送一个表明自己身份(用户ID、含旁手IP、等能唯一识别的就行)、和时间或序号谈嫌的数据,表示还“活”着。服启缺务器也定时判断哪个还“活”着,发现不“活”了立即更新其状态


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/12352151.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存