Am 27. Februar 2021 19:22:26 MEZ schrieb Pierre Guillot guillotpierre6@gmail.com:
Is it normal?
yes. this is how networking works. only a single listener on any given port pet interface.
I managed to solve this problem by replacing SO_REUSEADDR to SO_REUSEPORT on the function socket_set_boolopt() (l. 703 of x_net.c). I don't know much about sockets but I understand that it allows two [netreceive] objects to use the same address AND the same port. Do you think this is a proper way of fixing this problem?
no it's not. as you've already discovered, this is not supported on all platforms, and those platforms that do support SO_REUSEPORT, can (and do) implement it very differently. in most cases it will allow you to bind to the same port multiple times, but you will not receive data on all clients.
https://stackoverflow.com/a/14388707
one possible fix for this is to have a single socket that binds to the port, that serves all `[netreceive]` instances (using that port). this obviously canbonly work if all `[netreceive]` instances live in the same application.
you might also have luck with multicast.
mfg.hft.fsl IOhannes