udp受信の並列処理は可能?
以下のUDP受信プログラムを作成し,実行できることを確認しています。
ruby
1require 'socket' 2require 'ipaddr' 3 4udps = UDPSocket.open() 5udps.bind("0.0.0.0", 3610) 6mreq = IPAddr.new("224.0.23.0").hton + IPAddr.new("0.0.0.0").hton 7udps.setsockopt(Socket::IPPROTO_IP, Socket::IP_ADD_MEMBERSHIP, mreq) 8 9loop{ 10 packet,adder = udps.recvfrom(65535) 11 p msg=packet.unpack("H*") 12} 13
上記プログラミングでは、loop処理で受信をし続けますが、
受信をしつつ、別の処理を同一のコード内で実現をしたい場合は、どのようなコードになりますか?
例えば、受信を継続しつつ、下記プログラミングの
puts "test"
が実行されるコードはどうすればよいですか?
ruby
1require 'socket' 2require 'ipaddr' 3 4udps = UDPSocket.open() 5udps.bind("0.0.0.0", 3610) 6mreq = IPAddr.new("224.0.23.0").hton + IPAddr.new("0.0.0.0").hton 7udps.setsockopt(Socket::IPPROTO_IP, Socket::IP_ADD_MEMBERSHIP, mreq) 8 9loop{ 10 packet,adder = udps.recvfrom(65535) 11 p msg=packet.unpack("H*") 12} 13 14puts "test"
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。