HarmonyOS鸿蒙Next实现UDP发送请求功能鸿蒙示例代码

HarmonyOS鸿蒙Next实现UDP发送请求功能鸿蒙示例代码

介绍

本示例使用UDP发送数据,通过设置broadcast参数来启用或禁用广播模式。

广播模式应用场景:

  • 自动发现设备:通过广播发送消息,可以快速发现网络中的其他设备。
  • 通知所有设备:当需要向网络中的所有设备发送相同的消息时,广播模式非常有用。

实现UDP发送请求功能源码链接

效果预览

图片名称

使用说明

在UI部分,用户可以通过点击按钮或手动输入IP地址来触发发送操作,并选择是否启用广播模式。发送结果会显示在界面上,以便用户查看。

实现思路

核心函数send,负责发送UDP数据包,并且可以通过设置broadcast参数来启用或禁用广播模式。如果发送成功,则将结果存储为“成功”,并将结果显示的颜色设置为绿色。如果发送失败,则将结果存储为“失败”,并将结果显示的颜色设置为红色。

setExtraOptions方法,设置broadcast属性。如果broadcast为true,则启用广播模式;否则,禁用广播模式。udp.send方法,发送数据包。data参数是发送的数据内容,address参数指定了目标IP地址和端口。

function send(ip: string, broadcast: boolean) {
  udp.setExtraOptions(
    {
      broadcast: broadcast
    }
  ).then(() => {
    udp.send({
      data: searchCMD,
      address: {
        address: ip,
        port: 10008
      }
    }).then(() => {
      storage.set("Result", "Success!\nip: " + ip + "\nbroadcast: " + broadcast);
      storage.set("Color", GREEN);
    }).catch(() => {
      storage.set("Result", "Fail!\nip: " + ip + "\nbroadcast: " + broadcast);
      storage.set("Color", RED);
    });
  });
}

更多关于HarmonyOS鸿蒙Next实现UDP发送请求功能鸿蒙示例代码的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS鸿蒙Next实现UDP发送请求功能鸿蒙示例代码的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS鸿蒙Next实现UDP发送请求功能的示例代码如下:

import socket from '@ohos.net.socket';

// 创建UDP socket
let udpSocket = socket.constructUDPSocketInstance();

// 绑定本地IP和端口
udpSocket.bind({ address: '0.0.0.0', port: 8080, family: 1 }, (err) => {
    if (err) {
        console.error('bind failed, err: ' + JSON.stringify(err));
        return;
    }
    console.log('bind success');

    // 发送UDP数据
    udpSocket.send({
        data: 'Hello, UDP Server!',
        address: '192.168.1.100',
        port: 8888
    }, (err) => {
        if (err) {
            console.error('send failed, err: ' + JSON.stringify(err));
            return;
        }
        console.log('send success');
    });
});

// 接收UDP数据
udpSocket.on('message', (data) => {
    console.log('received data: ' + data.message);
    console.log('from address: ' + data.remoteInfo.address);
    console.log('from port: ' + data.remoteInfo.port);
});

// 关闭UDP socket
udpSocket.close((err) => {
    if (err) {
        console.error('close failed, err: ' + JSON.stringify(err));
        return;
    }
    console.log('close success');
});

该代码展示了如何在HarmonyOS鸿蒙Next中创建UDP socket、绑定本地IP和端口、发送和接收UDP数据,以及关闭UDP socket。

回到顶部