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 -
http://ruby-doc.org/stdlib-1.9.3/libdoc/socket/rdoc/Socket.html#method-i-bind

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

its packet?

Use #bind -
http://ruby-doc.org/stdlib-1.9.3/libdoc/socket/rdoc/Socket.html#method-i-bind

Oops. Wrong link. This is the right one:
http://ruby-doc.org/stdlib-1.9.3/libdoc/socket/rdoc/UDPSocket.html#method-i-bind

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs