美文网首页
【iOS】smartconfig 组播实现

【iOS】smartconfig 组播实现

作者: huasali | 来源:发表于2021-04-29 16:19 被阅读0次

一、框架

1.UDP框架 GCDAsyncUdpSocket;
2.加密方式,采用aes_cfb128 iv为0 ;
3.抓包验证wireshark

二、数据初始化

1.初始化UDPSocket 与广播相同

三、数据发送

(1)发送地址

端口与设备端协商,这里以60000举例
local:port -> 239...* : 60000 + index

(2)数据
说明
dataByte 总长度(1) + flag(1) + + pwdLen(1) + pwd + randLen(1) + rand+ ssidLen(1) + ssid + bssidLen + bssid + checkSum(1)
ssid: ssid为中文则采用utf-8编码,其他则为ASCII编码
pwd pwd需要加密
rand 随机数
bssid bssid
checkSum 校验和

加密编码方式与广播相同

//生成随机数
- (NSData *)dataFromRand:(int)count{
    Byte codeData[count];
    for (int i = 0; i < count; i++) {
        codeData[i] = arc4random()%255 + 1;
    }
    return  [NSData dataWithBytes:codeData length:sizeof(codeData)];
}
(3)发送结构

利用组播目的地址的后23bit发送数据
数据分为 239.index.data[n].data[n+1]
数据分为

说明
index 数据序号
data 数据按字节顺序
//生成地址
- (NSString *)ipStringWithData:(NSString *)dataString count:(int)count{
    NSString *ipString = [NSString stringWithFormat:@"239.%d.%@",count,dataString];
    return ipString;
}
//发送数据
[self.castClient sendData:[self zeroDataWithCount:1] toHost:ipString port:70000+_sendCount];
(4)传输规则

每包之间间隔20ms;间隔时间可按实际情况调整
(1) -> 239.0.data[0].data[1]
(2) -> 239.1.data[2].data[3]
(3) -> 239.2.data[4].data[5]
(4) -> 239.3.data[6].data[7]
...


截屏2021-04-29 16.17.04.png

相关文章

  • 【iOS】smartconfig 组播实现

    一、框架 1.UDP框架 GCDAsyncUdpSocket;2.加密方式,采用aes_cfb128 iv为0 ;...

  • 【iOS】smartconfig 广播实现

    一、框架 1.UDP框架 GCDAsyncUdpSocket;2.加密方式,采用aes_cfb128 iv为0 ;...

  • iOS实现SmartConfig技术(TI)

    要做物联网,首先我们要把硬件连接到WiFi,如何连接有很多种方案,比如在硬件上安装一个热点,手机连接这个热点把Wi...

  • WIFI配网方案

    1.蓝牙配网 2.WIFI自身配网 3.SmartConfig一键配网 二. 单播、广播、组播1、单播:单台主机与...

  • iOS实现AP模式(TI)

    在之前的文章iOS实现SmartConfig技术(TI)中,最后遇到一个硬件兼容性问题,时隔大半年,我又来填坑了我...

  • iOS-18 边下边播

    1 iOS视频边下边播--缓存播放数据流 - 简书 2 iOS实现边下边播 - 简书

  • flutter udp multicast 组播

    写这篇文章的缘由:在Android原生端,iOS原生端,实现udp 组播相信很多小伙伴都会的,但在flutter ...

  • iOS视频边下边播--缓存播放数据流

    转自博客:iOS视频边下边播--缓存播放数据流 google搜索“iOS视频变下边播”,有好几篇博客写到了实现方法...

  • iOS-自己实现个NSNotificationCenter

    iOS-自己实现个NSNotificationCenter 代码地址 实现原理类似多播委托 1.指定objc的实现...

  • iOS UDP组播

    组播步骤: 建立socket socket和端口绑定 加入一个组播组 通过sendto / recvfrom进行数...

网友评论

      本文标题:【iOS】smartconfig 组播实现

      本文链接:https://www.haomeiwen.com/subject/fkswrltx.html