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')
})

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

HarmonyOS
3天前
浏览
收藏 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');
});
分享
微博
QQ
微信
回复
3天前
相关问题
如何解决hdc file send指令行为异常?
1609浏览 • 0回复 待解决
udp服务信号是如何发送和接收
1814浏览 • 1回复 待解决
HarmonyOS postman 发送推送消息失败
536浏览 • 0回复 待解决
HarmonyOS Toast 消息提示
297浏览 • 1回复 待解决
ets TCPSocket连接无法发送消息
3999浏览 • 1回复 待解决
使用DevEco StudioJava预览器提示错误
9852浏览 • 1回复 待解决