鸿蒙UDPSocket使用

api9开发,代码如下:

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

const TAG: string = 'UdpPage';

@Entry
@Component
struct UdpPage {
  udp: socket.UDPSocket = socket.constructUDPSocketInstance();
  @State receiveMessage: string = ''; //收到数据

  build() {
    Row() {
      Column() {
        Button('启动服务端')
          .onClick(() => {
            this.udp.bind({ address: '192.168.3.19', port: 8099 }, err => {
              if (err) {
                console.error(TAG + ' server bind fail:' + JSON.stringify(err));
              }
              console.error(TAG + ' server bind success');
            });
            this.udp.on("message", value => {
              this.receiveMessage = this.bufToString(value.message);
              console.error(TAG + " server message:" + this.receiveMessage + ", remoteInfo:" + JSON.stringify(value.remoteInfo));
            })
          })

        Text(`收到数据如下:\n ${this.receiveMessage}`)


        Button('启动客户端')
          .margin({ top: 50 })
          .onClick(() => {
            this.udp.bind({ address: '192.168.3.19' })
          })

        Button('点我发送《我是客户端发送的数据》到服务端')
          .onClick(() => {
            this.udp.send({
              data: '我是客户端发送的数据',
              address: {
                address: '192.168.3.19',
                port: 8099
              }
            }).then(() => {
              console.error(TAG + ' client send success');
            }).catch(err => {
              console.error(TAG + ' client send fail:' + JSON.stringify(err));
            });
          })
      }
      .width('100%')
    }
    .height('100%')
  }

  bufToString(buf: ArrayBuffer) {
    let textDecoder = util.TextDecoder.create('utf-8')
    let str = textDecoder.decodeWithStream(new Uint8Array(buf))
    return str;
  }
}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值