Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > socketライブラリ > BasicSocketクラス > recv
recv(maxlen, flags = 0) -> String
[permalink][rdoc]ソケットからデータを受け取り、文字列として返します。 maxlen は受け取る最大の長さを指定します。 flags については recv(2) を参照してください。flags の デフォルト値は 0 です。flags の指定に必要な定数は Socket クラスで定義されています。(例: Socket::MSG_PEEK)
内部で呼び出す recv(2) が 0 を返した場合、このメソッドは "" を返します。 この意味はソケットによって異なります。 たとえば TCP では EOF を意味しますし、 UDP では空のパケットを読み込んだことを意味します。
例:
require 'socket' s1, s2 = UNIXSocket.pair s1.write "a" s1.close p s2.recv(10, Socket::MSG_PEEK) #=> "a" p s2.recv(10) #=> "a" p s2.recv(10) #=> ""