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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值