ruby udp broadcast example
Here’s a simpler version sender (client):
require 'socket' #addr = ['<broadcast>', 33333]# broadcast address #addr = ('255.255.255.255', 33333) # broadcast address explicitly [might not work ?] addr = ['127.0.0.255', 33333] # ?? UDPSock = UDPSocket.new UDPSock.setsockopt(Socket::SOL_SOCKET, Socket::SO_BROADCAST, true) (1..100000).each do |i| Thread.new do data = "I sent this #{i}" puts data UDPSock.send(data, 0, addr[0], addr[1]) end Thread.new do data = "wwwwwwwww #{i}" puts data UDPSock.send(data, 0, addr[0], addr[1]) end sleep 1 end UDPSock.close
Receiver (server):
require 'socket'
addr = ['0.0.0.0', 33333] # host, port
BasicSocket.do_not_reverse_lookup = true
# Create socket and bind to address
UDPSock = UDPSocket.new
UDPSock.bind(addr[0], addr[1])
while true
data, addr = UDPSock.recvfrom(1024) # if this number is too low it will drop the larger packets and never give them to you
puts "From addr: '%s', msg: '%s'" % [addr[0], data]
end
UDPSock.close