鸿蒙5.0开发【两模拟器实现网络通信】

本文概述
  • 问题背景:由于缺少HarmonyOS NEXT 真机,无法处理网络互通测试需求。因此,尝试探索模拟器互通

  • 环境准备:

    • 安装最新版DevEco Studio

      4

    • [申请最新版模拟器]

  • 新建两个模拟器

    3

  • 演示视频:工程结构 + 操作方法 + 运行效果

核心步骤
  • 由于两个模拟器均位于同一PC,其IP 及端口号均一致,因此,我需做端口转发即可

  • 使用hdc 查询模拟器id 与模拟器对应关系:需提前打开模拟器

    • 概述:

      • 红色框内即为模拟器id

      • 只开一个,并执行hdc list targets 即可进行区分

        2

    • 对应关系:

      • 127.0.0.1:5554 对应Huawei_Phone,将其用作客户端
      • 127.0.0.1:5557 对应Huawei_Phone_New,将其用作服务端
  • 端口转发:对服务端进行端口转发

    • 概述:

      • 假设模拟器实例我们指定为socket tcp服务端A:127.0.0.1:5555,监听端口为8088,客户端B:127.0.0.1:5557,监听端口为8089
      • 则在终端执行端口转发命令:hdc-t127.0.0.1:5555 fport tcp:8088 tcp:8089
      • 特别注意事项:模拟器中 socke(服务端代码监听的本机地址为:127.0.0.1.不是10.0.2.15,端口为8088,客户端socket本机配置地址:10.0.2.15:12340(端囗可随意),连接地址:10.0.2.2:8089
    • 执行命令

      hdc -t 127.0.0.1:5557 fport ls//查询端口转发任务
      hdc -t 127.0.0.1:5557 fport tcp:8089 tcp:8088//执行端口转发任务
      
    • 运行截图:

      • 第一条:此时无端口转发任务

      • 第二条:执行端口转发任务

      • 第三条:查询端口转发任务,佐证第二条是否执行成功

        1

代码运行步骤
  • 先运行服务端,再运行客户端
  • 详细步骤,请查阅演示视频
完整代码
  • 公共参数:InfoObject.ets

    export class InfoObject{
      messageNumber: number = 0//共计收到多少条消息
      receiveMsg: string = "默认值"//接收的消息的字面量
      ipAddress: string = "默认值"//通信对方的IP 地址
      portNumber: number = 0//通信对方的端口号
      protocolType: string = "默认值"//通信对方所采用的协议类型
      sizeMsg: number = 0//消息的字节数
    ​
      constructor(messageNumber: number,receiveMsg: string,ipAddress: string,portNumber: number,protocolType: string,sizeMsg: number) {
        this.messageNumber = messageNumber
        this.receiveMsg = receiveMsg
        this.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值