ruby udp broadcast example
1611 ワード
ruby udp broadcast example
Here’s a simpler version sender (client):
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