HarmonyOS 使用udp send方法发送消息时提示Bad file descriptor

主流程代码如下:

import { socket } from '@kit.NetworkKit'

const udp = socket.constructUDPSocketInstance() as socket.UDPSocket
const netAddress: socket.NetAddress = { address: '255.255.255.255', family: 1 }
let decodedMessage: string
const message = 'WloBEUgAkgCoAAAAFSklEQkHGBQAAAAAAAAAAAAAAAAAAAAAAAAAAH91vWs+T4t2LoScbleNZZAFN0CBc5DaiUZmYBtoGu69'
decodedMessage = buffer.from(message, 'base64').toString()
const sendOptions: socket.UDPSendOptions = {
  data: decodedMessage as string | ArrayBuffer,
  address: netAddress
}
udp.send(sendOptions, (err: BusinessError) => {
  if (err) {
    console.log('sendUDPMessage err')
    return
  }
  console.log('sendUDPMessage success')
})
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

每次发送消息后,err处都返回Bad file descriptor,请问这个错误有没有具体的排查思路?

HarmonyOS
2024-12-23 16:56:21
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Heiang

发送数据前需要先调用UDPSocket.bind()绑定IP地址和端口,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-socket-V5#send

默认不支持广播,参考示例设置:

let udpextraoptions: socket.UDPExtraOptions = {
  broadcast: true
}
udp.setExtraOptions(udpextraoptions).then(() => {
  console.log('setExtraOptions success');
}).catch((err: BusinessError) => {
  console.log('setExtraOptions fail');
});
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
分享
微博
QQ
微信
回复
2024-12-23 20:01:39
相关问题
HarmonyOS push提示400 Bad Request -
760浏览 • 1回复 待解决
udp服务信号是如何发送和接收
2724浏览 • 1回复 待解决
如何解决hdc file send指令行为异常?
2723浏览 • 0回复 待解决
HarmonyOS TLSSocket发送消息报错
597浏览 • 1回复 待解决
HarmonyOS postman 发送推送消息失败
1319浏览 • 0回复 待解决
HarmonyOS Toast 消息提示
698浏览 • 1回复 待解决
ets TCPSocket连接无法发送消息
4715浏览 • 1回复 待解决
webview如何进行消息发送以及接收?
1319浏览 • 1回复 待解决