recvfrom(maxlen, flags = 0) -> Array
[permalink][rdoc][edit]-
recv と同様にソケットからデータを受け取りますが、戻り値は文字列と相手ソケットのアドレス (形式は IPSocket#addr 参照) のペアです。引数については BasicSocket#recv と同様です。
- [PARAM] maxlen:
- 受け取る文字列の最大の長さを指定します。
- [PARAM] flags:
- recv(2) を参照してください。
- [EXCEPTION] IOError:
- [EXCEPTION] Errno::EXXX:
- recvfrom(2) がエラーになった場合などに発生します。
例:
require 'socket' s1 = UDPSocket.new s1.bind("0.0.0.0", 0) # 適当に空いている port を割り当てる s2 = UDPSocket.new s2.send("foo", 0, s1.getsockname) mesg, inet_addr = s1.recvfrom(100) p mesg #=> "foo" p inet_addr #=> ["AF_INET", 32876, "localhost.localdomain", "127.0.0.1"]