Miarcle_Jarvis 2024-06-05 14:13 采纳率: 0%
浏览 7

go语言在macOS运行,程序读不到255.255.255.255的广播包,但是我用wireshark可以收到。为什么?

go语言在macOS运行,程序读不到255.255.255.255的广播包,但是我用wireshark可以收到。为什么?

img

img

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-06-05 14:14
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    从您提供的两个JPEG文件内容来看,我们可以分析出以下几点:

    Wireshark捕获数据分析(文件1):

    1. 通信记录:Wireshark显示了从源地址192.168.0.6到广播地址255.255.255.255的UDP通信。这些数据包的源端口是9123,目标端口也是9123。

    2. 数据包内容:数据包长度不一,从60到148字节不等。这可能表明不同的数据负载或消息类型。

    3. 时间戳:数据包在不同的时间点被发送,这可能与发送频率或触发条件有关。

    Go语言程序代码分析(文件2):

    1. 程序日志:日志显示程序成功解析了UDP地址192.168.0.43:9123,并开始监听。这表明程序配置为监听来自该地址的UDP数据包。

    2. 代码实现

      • net.ResolveUDPAddr:用于解析UDP地址,程序中使用该函数来获取服务器地址。
      • net.ListenUDP:用于监听指定网络和地址上的UDP数据包。程序中使用该函数来启动监听。
    3. 错误处理:代码中检查了err变量,以确保没有错误发生。

    问题分析:

    • 广播包接收问题:尽管Wireshark能够捕获到广播包,但您的Go程序可能没有正确配置来接收广播包。在macOS上,接收广播包可能需要额外的配置,因为默认情况下,广播包可能不会被接收。

    • 代码配置:您的Go程序配置为监听192.168.0.43:9123,而不是广播地址255.255.255.255:9123。这意味着程序只会接收来自192.168.0.43的UDP数据包,而不是所有广播到255.255.255.255的数据包。

    解决建议:

    1. 修改监听地址:将程序中的监听地址改为广播地址255.255.255.255:9123

    2. 检查网络配置:确保macOS的网络配置允许接收广播包。这可能涉及到修改系统设置或使用特定的网络接口。

    3. 错误处理:确保程序能够正确处理接收广播包时可能出现的错误,并在日志中记录这些信息。

    4. 测试:在修改配置后,使用Wireshark和Go程序同时监听同一网络,以验证程序是否能够接收到广播包。

    参考资料:

    请注意,由于我无法访问外部链接,上述参考资料地址仅供参考。您可以根据需要搜索相关信息。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月5日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见