HarmonyOS str转ArrayBuffer

使用TCPsocket连接方式,对一个IP进行发送消息并拿到此IP接受到消息之后的返回数据,为了完成手机通过连接设备热点的形式通过TCPsocket给此设备传递一个可连接WiFi信息,此设备接受通过TCP连接接受到数据后,就会返回数据发送给之前那个TCPsocket的ip,此时手机就会接受到socket发送过来的信息。

遇到问题:

1.设备接受的数据只能为二进制形式的数据,而send方法传递数据的数据格式string | ArrayBuffer,将二进制转换成string | ArrayBuffer格式传递时,

string类型时,on方法返回的数据为:

messageView: “›\u0006ÀN0àˈ”
value:{“message”:{},“remoteInfo”:{“address”:“192.168.5.1”,“family”:“IPv4”,“port”:5003,“size”:8}};
  • 1.
  • 2.

而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;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

但on方法返回提示信息为参数错误。

HarmonyOS
2024-12-25 17:37:40
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
fox280

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;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
分享
微博
QQ
微信
回复
2024-12-25 19:34:08
相关问题
HarmonyOS PBArrayBuffer发送失败
549浏览 • 1回复 待解决
HarmonyOS arraybufferbase64乱码
898浏览 • 1回复 待解决
ArrayBuffer怎样字符串
1189浏览 • 1回复 待解决
ArrayBuffer怎么Uint8Array?
1269浏览 • 1回复 待解决
HarmonyOS Uint8Array怎么正确ArrayBuffer
2421浏览 • 1回复 待解决
如何将Uint8ArrayArrayBuffer
1104浏览 • 1回复 待解决
HarmonyOS base64.decodeSync(str)使用报错
770浏览 • 1回复 待解决
HarmonyOS pixelMap转成ArrayBuffer
1262浏览 • 1回复 待解决
HarmonyOS Array如何转成ArrayBuffer
472浏览 • 1回复 待解决
HarmonyOS Napi Arraybuffer无法创建
777浏览 • 1回复 待解决
HarmonyOS ArrayBuffer对象做填值操作
618浏览 • 1回复 待解决
HarmonyOS 图片pdf
883浏览 • 1回复 待解决
HarmonyOS class Map
929浏览 • 1回复 待解决
HarmonyOS MapObject
743浏览 • 1回复 待解决
HarmonyOS string number
1756浏览 • 1回复 待解决
HarmonyOS routerNavigation
559浏览 • 1回复 待解决