TCP&UDP协议
简介
通过TCP&UDP自定义协议,与网关设备交互获取设备信息及控制智能家居设备
接入说明
使用TCP&UDP协议接入需要网关作为服务端,使用UDP监听背景音乐主机发送过来的连接广播数据,TCP服务端用来接收协议数据
监听UDP端口:5555
回复UDP端口:5554
协议格式
包头
数据长度
JSON数据
校验和
FF494F54
为JSON数据所占字节数(16进制)
DATA,字符串数据
异或校验,数据长度+数据
的字节进行异或(16进制)
异或算法代码
public static int xorSum(byte[] datas) {
int temp = datas[1]; // 此处首位取1是因为本协议中第一个数据不参数异或校验,转为int防止结果出现溢出变成负数
for (int i = 2; i < datas.length; i++) {
int preTemp = temp;
int iData;
if (datas[i] < 0) {
iData = datas[i] & 0xff; // 变为正数计算
} else {
iData = datas[i];
}
if (temp < 0) {
temp = temp & 0xff; // 变为正数
}
temp ^= iData;
}
return temp;
}建立TCP连接
背景音乐主机发送隔5秒发送一次UDP广播包,网关设备收到后,回复自身TCP服务的IP地址和端口号
当背景音乐主机收到UDP广播回复后会连接网关的TCP服务
交互图

请求JSON格式
响应JSON格式
获取设备
获取智能家居设备信息
请求JSON格式
响应JSON格式
控制设备
设备控制时发送的数据
data的携带参数会因为aciton的不同而改变,可参考请求类型与数据
请求JSON格式
响应JSON格式
最后更新于