HarmonyOS Tcp socket问题

tcp: socket.TCPSocket = socket.constructTCPSocketInstance()
let hexStr = "aabb01"
const byteArray = new Array<number>()
for (let i = 0; i < hexStr.length; i += 2) {
  byteArray.push(parseInt(hexStr.substring(i, i + 2), 16))
}
let buffer = new Uint8Array(byteArray)
let tcpSendOptions: socket.TCPSendOptions = {
  data: buffer
}
tcp.send(tcpSendOptions, (err: BusinessError) => {
  if (err) {
    console.log('send fail');
    return;
  }
  console.log('send success');
})

如果data类型是字符串平台可以收到,日志打印send success,如果是ArrayBuffer平台收不到数据,日志回调上不打印send fail也不打印send success。是16进制字符串转arrybuffer处理的有问题,还是就只能发送string,如果能发送那如何进行转换。

HarmonyOS
3天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

str是16进制的,需要进行数据类型转换,参考示例如下:

hexToArrayBuffer(hexStr:string) {
  let length:number = hexStr.length / 2
  let buffer = new ArrayBuffer(length)
  let bufView = new Uint8Array(buffer)
  for (let i = 0; i < length; i ++) {
    let hex = hexStr.substring(i * 2, i * 2 + 2)
    bufView[i] = parseInt(hex,16)
  }
  return buffer
}
分享
微博
QQ
微信
回复
3天前
相关问题
HarmonyOS socket tcp连接报错
35浏览 • 1回复 待解决
HarmonyOS socket 绑定IP问题
23浏览 • 1回复 待解决
HarmonyOS 经典蓝牙的socket通信问题
375浏览 • 1回复 待解决
socket连接NetAddress获取问题
423浏览 • 1回复 待解决
openharmony 基于arkts的socket连接问题
4159浏览 • 1回复 待解决
HarmonyOS 有关中心仓 socket-io的问题
127浏览 • 1回复 待解决
关于Tcp 5037一直连接不上问题
6650浏览 • 1回复 待解决
HarmonyOS 关于Socket
63浏览 • 1回复 待解决
ohos.net.socket (Socket连接)链接不上
5650浏览 • 1回复 待解决
HarmonyOS UDP socket bind失败
40浏览 • 1回复 待解决
HarmonyOS Socket报缓存溢出
78浏览 • 1回复 待解决
ArkUI 支持 Tcp Server吗?
3401浏览 • 1回复 待解决
native创建socket会失败
1779浏览 • 1回复 待解决
HarmonyOS如何退到后台时退出socket
536浏览 • 0回复 待解决
nginx tcp转发 怎么获取源IP?
2917浏览 • 1回复 待解决