Choosing target network for UDP broadcast

If I send a UDP packet containing ‘foo’ like this:

socket = UDPSocket.new
socket.setsockopt(Socket::SOL_SOCKET, Socket::SO_BROADCAST, true)
socket.send(‘foo’, 0, ‘’, 40001)

then wireshark tells me it gets sent from 192.168.x.y. However, my
server is listening on localhost:40001. How can I choose the source
address from which (and the interface via which) the socket will send
its packet?

On Fri, Feb 3, 2012 at 11:36 AM, Ivo W. [email protected] wrote:

If I send a UDP packet containing ‘foo’ like this:

socket = UDPSocket.new
socket.setsockopt(Socket::SOL_SOCKET, Socket::SO_BROADCAST, true)
socket.send(‘foo’, 0, ‘’, 40001)

then wireshark tells me it gets sent from 192.168.x.y. However, my
server is listening on localhost:40001. How can I choose the source
address from which (and the interface via which) the socket will send
its packet?

Hm, no UDP specialist here but can’t you bind to the proper address
and then send the broadcast?

Kind regards

robert

On Fri, Feb 3, 2012 at 10:36 AM, Ivo W. [email protected] wrote:

If I send a UDP packet containing ‘foo’ like this:

socket = UDPSocket.new
socket.setsockopt(Socket::SOL_SOCKET, Socket::SO_BROADCAST, true)
socket.send(‘foo’, 0, ‘’, 40001)

then wireshark tells me it gets sent from 192.168.x.y. However, my
server is listening on localhost:40001. How can I choose the source
address from which (and the interface via which) the socket will send
its packet?

Use #bind -

On Fri, Feb 3, 2012 at 1:47 PM, Sean O’Halpin [email protected]
wrote:

its packet?

Use #bind -
Class: Socket (Ruby 1.9.3)

Oops. Wrong link. This is the right one: