HarmonyOS 鸿蒙Next TCPsocket连接方式

发布于 1周前 作者 itying888 来自 鸿蒙OS

HarmonyOS 鸿蒙Next TCPsocket连接方式

使用TCPsocket连接方式,对一个IP进行发送消息并拿到此IP接受到消息之后的返回数据,为了完成手机通过连接设备热点的形式通过TCPsocket给此设备传递一个可连接WiFi信息,此设备接受通过TCP连接接受到数据后,就会返回数据发送给之前那个TCPsocket的ip,此时手机就会接受到socket发送过来的信息。
遇到问题:
1.设备接受的数据只能为二进制形式的数据,而send方法传递数据的数据格式string | ArrayBuffer,将二进制转换成string | ArrayBuffer格式传递时,
string类型时,on方法返回的数据为:
messageView: “›\u0006ÀN0àˈ”
value:{“message”:{},“remoteInfo”:{“address”:“x.x.x.x”,“family”:“IPv4”,“port”:5003,“size”:8}};

而ArrayBuffer类型,我是通过方法转换而来,方法如下:
strToArrayBuffer(str: string) {
let buf = new ArrayBuffer(str.length * 2);
let bufView = new Uint16Array(buf);
for (let i = 0, strLen = str.length; i < strLen; i++) {
bufView[i] = str.charCodeAt(i);
}
return bufView;
}
但on方法返回提示信息为参数错误。

咨询场景描述:


更多关于HarmonyOS 鸿蒙Next TCPsocket连接方式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

str转ArrayBuffer 用如下方式试下

strToArrayBuffer(str: string) {
let buf = new ArrayBuffer(str.length * 2);
let bufView = new Uint8Array(buf);
for (let i = 0, strLen = str.length; i < strLen; i++) {
bufView[i] = str.charCodeAt(i);
}
return bufView.buffer;
} 

更多关于HarmonyOS 鸿蒙Next TCPsocket连接方式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,Next TCP socket连接方式主要涉及到使用鸿蒙系统的网络API来建立TCP连接。以下是一个简要的步骤描述:

  1. 创建Socket: 使用Socket类(或对应鸿蒙系统的网络库)创建一个TCP socket。这通常涉及到调用一个创建socket的函数,并指定其为TCP类型。

  2. 绑定地址和端口(如果需要作为服务器): 如果你的应用需要作为TCP服务器,那么你需要将socket绑定到一个特定的IP地址和端口上。这通常通过bind函数实现。

  3. 监听连接(服务器): 服务器socket需要进入监听状态,等待客户端的连接请求。这通过listen函数实现。

  4. 接受连接(服务器)或连接到服务器(客户端):

    • 服务器使用accept函数接受客户端的连接请求。
    • 客户端使用connect函数连接到服务器的IP地址和端口。
  5. 数据读写: 一旦连接建立,双方就可以通过sendrecv(或鸿蒙系统提供的等效函数)来发送和接收数据。

  6. 关闭连接: 数据传输完成后,使用close函数关闭socket连接。

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

回到顶部