Sending UDP broadcast, receiving multiple messages

后端 未结 4 617
借酒劲吻你
借酒劲吻你 2020-11-30 22:52

I\'ve got 2 programs, 1 for sending an UDP broadcast message and 1 that is listening for this broadcast. My problem is that sometimes when I send a broadcast, the receiver r

相关标签:
4条回答
  • 2020-11-30 23:01

    Keep in mind that (1) UDP packets are VERY reliable for all clients on the same router, and (2) packet duplication can occur when more than one path is available from the server to the client.

    I had this problem on a VM, and it was solved by a network guru smarter than me who added a virtual NIC to the VM and had me run "route delete" and "route add" commands.

    Specifically (on Windows 10 VM), if the new virtual NIC is 10.10.10.10: route delete 224.0.0.0 mask 240.0.0.0 route add 224.0.0.0 mask 240.0.0.0 10.10.10.10

    0 讨论(0)
  • 2020-11-30 23:12

    Strictly speaking, packet duplication in IP network is allowed behavior of the network and you have to be able to deal with it in your software even if you will somehow get rid of it this time. If you are just wondering about why this happens in your particular case... at a first glance I see nothing wrong with your code. Do you have several IP addresses on Ethernet port of your computer or some such? I think wireshark might help get more details about what's going on.

    0 讨论(0)
  • 2020-11-30 23:15

    UDP packets aren't reliable, it's totally possible that you'll get the same packet twice or even none at all, when using udp you need to include some kind of unique ID in your data so you can discard errors or request a resend.

    0 讨论(0)
  • 2020-11-30 23:15

    The reason is when you broadcast you send your message to all the end points in the network. Since you are in the same network, you will receive the same message because it is broadcasted. You can write a custom filter for that.

    0 讨论(0)
提交回复
热议问题