`
xitong
  • 浏览: 6194039 次
文章分类
社区版块
存档分类
最新评论

ruby udp broadcast example

 
阅读更多

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics