Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > socketライブラリ > Socketクラス > udp_server_recv

singleton method Socket.udp_server_recv

udp_server_recv(sockets) {|msg, msg_src| ... } -> ()[permalink][rdoc]

socketsで与えられた各 UDP ソケットからデータを読み取ります。

各ソケットからメッセージを読み取るごとにブロックを呼び出します。ブロックに渡される引数は msg と msg_src の 2 つで、 msg は受け取ったメッセージ文字列で、 msg_src は通信相手の Socket::UDPSource オブジェクトです。

Socket.udp_server_loop はこのメソッドの用いて以下のようにして実装できます。

require 'socket'

udp_server_sockets(host, port) {|sockets|
  loop {
    readable, _, _ = IO.select(sockets)
    udp_server_recv(readable) {|msg, msg_src| ... }
  }
}
[PARAM] sockets:
読み込むソケットの配列