Am 19.12.2013 um 16:39 schrieb jannik.laval <[email protected]>:
> And here is my small example code: > > udpSocket := Socket newUDP. > udpSocket setOption: 'SO_BROADCAST' value: true. > udpSocket getOption: 'SO_BROADCAST'. > udpSocket receiveDataTimeout: 15. > There are operating system specific problems. You need to check if you need specific priviledges even for receiving packets. On linux systems there was once something about the binding interface you use. You need either specific (IP address) or wildcard (0.0.0.0) to make it operate. But can not recall which it was. Norbert > > Jannik > > On Dec 19, 2013, at 4:29 PM, jannik.laval <[email protected]> wrote: > >> Ok, here is my situation: >> >> - I have a Lego Mindstorm that broadcast a UDP message every 10 seconds. >> - With Wireshark I can see the UDP message, so no problem with that. >> - I tried to set the option SO_BROADCAST, it does not work anymore. >> >> Any other idea ? >> >> Jannik >> >> On Dec 19, 2013, at 4:14 PM, Stephan Eggermont <[email protected]> wrote: >> >>> Norbert wrote: >>> >To send or receive a broadcast packet you need to put special options on >>> >the socket on the native side (setsockopt). You need to >look if the >>> >SO_BROADCAST option is mentioned anywhere. If not it won’t work without >>> >adding them. And for sending them you >need almost special privileges on >>> >the system. This is not a „user feature“. >>> >>> And even though it is "the right thing" for lots of situations, your >>> network is also very likely to not do the right thing >>> with broadcast packets. Etsy decided on using bittorrent protocol to update >>> their production servers indexes, because they >>> found it too difficult to get their network to do the right thing. They >>> found that their switches were basically livelocked >>> while dealing with broadcast packets. >>> >>> http://codeascraft.com/2012/01/23/solr-bittorrent-index-replication/ >>> >>> If you want the broadcast to travel a little further, the routers need to >>> be configured not to drop the packets. >>> >>> Stephan >> >
