V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sujin190
V2EX  ›  问与答

求问 windows udp 关播包 wireshark 能抓到但是程序接收不到是啥问题

  •  
  •   sujin190 · 12 天前 · 434 次点击
    Frame 12326: 130 bytes on wire (1040 bits), 130 bytes captured (1040 bits) on interface \Device\NPF_{ADED3968-3BF4-44A4-BDFF-B9B3F7384432}, id 0
    Ethernet II, Src: MarquetteEle_05:36:a1 (00:00:a1:05:36:a1), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
    Internet Protocol Version 4, Src: 192.168.2.17, Dst: 192.168.2.255
    User Datagram Protocol, Src Port: 3783, Dst Port: 7000
    Data (88 bytes)
    

    wireshark 抓包看到是这样的,但是程序就是收不到,socket bind 0.0.0.0 7000 端口,并且已设置 setsockopt(SOL_SOCKET, SO_BROADCAST, 1),python 程序,有知道这是啥问题的否?感谢感谢!

    3 条回复    2024-09-13 09:25:07 +08:00
    sujin190
        1
    sujin190  
    OP
       11 天前
    研究了一番发现,是子网掩码的问题,dhcp 分配本机 ip 192.168.2.165 ,网关 192.165.2.1 ,子网掩码 255.255.254.0 ,这时候算出来的广播地址其实是 192.168.3.255 ,和 wireshark 抓包的光比地址 192.168.2.255 并不匹配,所以程序不能接收,子网掩码需要是 255.255.255.0 时关播地址才是 192.168.2.255

    顺便,网上说开启 hyper-V 虚拟网卡会导致不能接收 udp 广播数据包,经测试并未发现这个问题,子网掩码修改为正确 255.255.255.0 后能正确接收 udp 广播数据包
    bbsingao
        2
    bbsingao  
       11 天前
    为什么 dhcp 这么设置
    sujin190
        3
    sujin190  
    OP
       11 天前
    @bbsingao #2 办公室网络,也不明所以
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3314 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:31 · PVG 12:31 · LAX 21:31 · JFK 00:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.