HarmonyOS 鸿蒙Next 关于udp广播demo

HarmonyOS 鸿蒙Next 关于udp广播demo


//本地IP的数值形式
// let ipNum = wifiManager.getIpInfo().ipAddress;
//本地IP的字符串形式
// let localIp:string = (ipNum >>> 24) + '.' + (ipNum >> 16 & 0xFF) + '.' + (ipNum >> 8 & 0xFF) + '.' + (ipNum & 0xFF);
// console.debug(`localIP: ${ipNum}, ${localIp}`);

await udp.bind({ address: '0.0.0.0', port: 6811 }).then(() => { 
  console.log('bind success');
}).catch((err: Object) => {
  console.error('bind fail: ' + JSON.stringify(err));
});


let udpextraoptions: socket.UDPExtraOptions = {
  receiveBufferSize: 100000,
  sendBufferSize: 100000,
  reuseAddress: false,
  socketTimeout: 6000,
  broadcast: true //一定要设置,不然不允许发送广播
}
await udp.setExtraOptions(udpextraoptions).then(() => {
  console.log('setExtraOptions success');
}).catch((err: BusinessError) => {
  console.log('setExtraOptions fail');
});

udp.on('message', (value: socket.SocketMessageInfo) => {
  console.log('数据长度: ' + value.message.byteLength);
  //自己按照自己的数据过滤处理数据
});

//广播地址和端口
let targetAddr: socket.NetAddress = {
  address: '255.255.255.255',
  port: 8888, //端口填自己设备的
}
//数据发送自己想要发送的数据 arrayBuffer或者string
let date = [0x44,0x43, 0x42, 0x41];
//转换二进制发送直接Uint8Array就行
let arrayBuffer = new Uint8Array(date).buffer;

let sendOptions: socket.UDPSendOptions = {
  data: arrayBuffer,
  address: targetAddr
}


await udp.send(sendOptions).then(() => {
  console.log('send success:', Number(sendOptions.data as ArrayBuffer));
}).catch((err: BusinessError) => {
  console.log('send fail' + JSON.stringify(err));
});
 
}

更多关于HarmonyOS 鸿蒙Next 关于udp广播demo的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next 关于udp广播demo的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


关于HarmonyOS 鸿蒙Next的UDP广播demo,以下是一个简要的实现指南:

HarmonyOS封装的UDP操作类位于模块socket中,使用“import socket from ‘@ohos.net.socket’”导入。创建一个UDP广播demo,需掌握构造UDPSocket对象、绑定IP地址和端口、发送数据、订阅接收消息事件等关键方法。

具体实现时,首先创建一个Empty Ability项目,并在module.json5配置文件中声明访问互联网和访问WIFI信息的权限。然后,在Index.ets文件中编写代码,包括构造UDPSocket实例、获取本地IP地址、绑定端口、设置目标IP和端口、实现发送和接收数据的功能等。

接收数据时,通过订阅UDPSocket连接的“message”事件来触发接收消息的处理逻辑。发送数据时,只需指定目标IP和端口,即可通过UDPSocket发送数据。

请注意,UDP是无连接的不可靠协议,因此在实现UDP广播时需要考虑数据丢失和乱序的问题。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部