UDPで送受信を行う
単純に2つのポートを開いて
Server->Client ... port:10000
Client->Server ... port:10001
として双方向の通信を行ってみます。
UDPのため送信されたデータが届くことは保証されないですが、TCPより手続きが簡単かと思います。
- サーバ側のプログラム
require 'socket' u1 = UDPSocket.new() u1.bind('localhost', 10001) u2 = UDPSocket.new() u2.connect('localhost', 10000) loop do sleep 1 begin p u1.recvfrom_nonblock(65536) rescue puts "[Server] Error, recvfrom" end begin puts "[Server] >>" u2.send('[Server] Hello world', 0) rescue puts "[Server] Error, send" end end
- クライアント側のプログラム
require 'socket' u1 = UDPSocket.new() u1.bind('localhost', 10000) u2 = UDPSocket.new() u2.connect('localhost', 10001) loop do sleep 1 begin p u1.recvfrom_nonblock(65536) rescue puts "[Client] Error, recvfrom" end begin puts "[Client] >>" u2.send('[Client] Hello world', 0) rescue puts "[Client] Error, send" end end