るりまサーチ (Ruby 2.4.0)

最速Rubyリファレンスマニュアル検索!
59件ヒット [1-59件を表示] (0.044秒)
トップページ > クエリ:port[x] > ライブラリ:socket[x] > バージョン:2.4.0[x]

別のキーワード

  1. uri default_port
  2. generic default_port
  3. socket iff_team_port
  4. socket iff_bridge_port
  5. socket iff_macvlan_port

検索結果

Socket.getservbyport(port, protocol_name="tcp") -> String (18628.0)

ポート番号に対応するサービスの正式名を返します。

...す。

@param port ポート番号
@param protocol_name "tcp" や "udp" などのプロトコル名
@return サービスの正式名

require 'socket'

Socket
.getservbyport(80) #=> "www"
Socket
.getservbyport(514, "tcp") #=> "shell"
Socket
.getservbyport(514, "udp") #=> "syslog"...

Socket::Constants::IP_PORTRANGE -> Integer (18403.0)

Set the port range for sockets with unspecified port numbers。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

...Set the port range for sockets with unspecified port numbers。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。

@see Socket::Constants::IPPROTO_IP, ip(4freebsd)...

Socket::IP_PORTRANGE -> Integer (18403.0)

Set the port range for sockets with unspecified port numbers。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

...Set the port range for sockets with unspecified port numbers。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。

@see Socket::Constants::IPPROTO_IP, ip(4freebsd)...

Socket::Constants::IFF_BRIDGE_PORT (18358.0)

device used as bridge port

device used as bridge port

Socket::Constants::IFF_MACVLAN_PORT (18358.0)

device used as macvlan port

device used as macvlan port

絞り込み条件を変える

Socket::Constants::IFF_TEAM_PORT (18358.0)

used as team port

used as team port

Socket::IFF_BRIDGE_PORT (18358.0)

device used as bridge port

device used as bridge port

Socket::IFF_MACVLAN_PORT (18358.0)

device used as macvlan port

device used as macvlan port

Socket::IFF_TEAM_PORT (18358.0)

used as team port

used as team port

Socket::Constants::SO_REUSEPORT -> Integer (18355.0)

Allow local address and port reuse。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

...Allow local address and port reuse。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。

@see getsockopt(2freebsd), Socket::Constants::SOL_SOCKET...

絞り込み条件を変える

Socket::SO_REUSEPORT -> Integer (18355.0)

Allow local address and port reuse。 BasicSocket#getsockopt, BasicSocket#setsockopt の第2引数(optname)に使用します。

...Allow local address and port reuse。
BasicSocket#getsockopt, BasicSocket#setsockopt
の第2引数(optname)に使用します。

@see getsockopt(2freebsd), Socket::Constants::SOL_SOCKET...

Addrinfo#ip_port -> Integer (18346.0)

ポート番号を整数で返します。

...ポート番号を整数で返します。

require 'socket'

Addrinfo.tcp("127.0.0.1", 80).ip_port #=> 80
Addrinfo.tcp("::1", 80).ip_port #=> 80

@see Addrinfo#ip_address, Addrinfo#ip_unpack...

Socket::Constants::IFF_PORTSEL (18307.0)

can set media type

can set media type

Socket::Constants::IPPORT_RESERVED -> Integer (18307.0)

利用法が予約されているポート番号の最大値。

利用法が予約されているポート番号の最大値。

Socket::Constants::IPPORT_USERRESERVED -> Integer (18307.0)

ユーザが自由に利用して良いポート番号の最小値。

ユーザが自由に利用して良いポート番号の最小値。

絞り込み条件を変える

Socket::Constants::SO_SECURITY_ENCRYPTION_TRANSPORT -> Integer (18307.0)

@todo

@todo

Socket::IFF_PORTSEL (18307.0)

can set media type

can set media type

Socket::IPPORT_RESERVED -> Integer (18307.0)

利用法が予約されているポート番号の最大値。

利用法が予約されているポート番号の最大値。

Socket::IPPORT_USERRESERVED -> Integer (18307.0)

ユーザが自由に利用して良いポート番号の最小値。

ユーザが自由に利用して良いポート番号の最小値。

Socket::SO_SECURITY_ENCRYPTION_TRANSPORT -> Integer (18307.0)

@todo

@todo

絞り込み条件を変える

Socket.tcp(host, port, local_host=nil, local_port=nil, connect_timeout: nil) -> Socket (721.0)

TCP/IP で host:port に接続するソケットオブジェクトを作成します。

...ックが返した値です。
ブロックなしで呼ばれた場合はソケットオブジェクトを返します。

require 'socket'

Socket
.tcp("www.ruby-lang.org", 80) {|sock|
sock.print "GET / HTTP/1.0\r\nHost: www.ruby-lang.org\r\n\r\n"
sock.close_write
puts sock.r...

Socket.tcp(host, port, local_host=nil, local_port=nil, connect_timeout: nil) {|socket| ... } -> object (721.0)

TCP/IP で host:port に接続するソケットオブジェクトを作成します。

...ックが返した値です。
ブロックなしで呼ばれた場合はソケットオブジェクトを返します。

require 'socket'

Socket
.tcp("www.ruby-lang.org", 80) {|sock|
sock.print "GET / HTTP/1.0\r\nHost: www.ruby-lang.org\r\n\r\n"
sock.close_write
puts sock.r...

Socket.udp_server_sockets(host, port) -> [Sockets] (421.0)

UDP で host:port を待ち受けるサーバ側のソケットを作成します。

...はすべて同じ番号を持ちます。

# UDP/IP echo server
require 'socket'

Socket
.udp_server_sockets(0) {|sockets|
p sockets.first.local_address.ip_port #=> 32963
Socket
.udp_server_loop_on(sockets) {|msg, msg_src|
msg_src.reply msg
}
}

@param host 割り当て...

Socket.udp_server_sockets(host, port) {|sockets| ... } -> object (421.0)

UDP で host:port を待ち受けるサーバ側のソケットを作成します。

...はすべて同じ番号を持ちます。

# UDP/IP echo server
require 'socket'

Socket
.udp_server_sockets(0) {|sockets|
p sockets.first.local_address.ip_port #=> 32963
Socket
.udp_server_loop_on(sockets) {|msg, msg_src|
msg_src.reply msg
}
}

@param host 割り当て...

Socket.udp_server_sockets(port) -> [Sockets] (421.0)

UDP で host:port を待ち受けるサーバ側のソケットを作成します。

...はすべて同じ番号を持ちます。

# UDP/IP echo server
require 'socket'

Socket
.udp_server_sockets(0) {|sockets|
p sockets.first.local_address.ip_port #=> 32963
Socket
.udp_server_loop_on(sockets) {|msg, msg_src|
msg_src.reply msg
}
}

@param host 割り当て...

絞り込み条件を変える

Socket.udp_server_sockets(port) {|sockets| ... } -> object (421.0)

UDP で host:port を待ち受けるサーバ側のソケットを作成します。

...はすべて同じ番号を持ちます。

# UDP/IP echo server
require 'socket'

Socket
.udp_server_sockets(0) {|sockets|
p sockets.first.local_address.ip_port #=> 32963
Socket
.udp_server_loop_on(sockets) {|msg, msg_src|
msg_src.reply msg
}
}

@param host 割り当て...

Socket.tcp_server_sockets(host, port) -> [Socket] (403.0)

TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。

...番号を持ちます。

require 'socket'

# tcp_server_sockets returns は2つのソケットを返す
socket
s = Socket.tcp_server_sockets(1296)
p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]

# それぞれは IPv4 と IPv6 のソケット
socket
s.each {|s| p s.local_address }
#=>...
...
socket
s = Socket.tcp_server_sockets(0)
socket
s.each {|s| p s.local_address }
#=> #<Addrinfo: [::]:53114 TCP>
# #<Addrinfo: 0.0.0.0:53114 TCP>

# ブロックにソケットの配列が渡される
Socket
.tcp_server_sockets(0) {|sockets|
p sockets #=> [#<Socket:fd 3>, #<Socket:fd...
...4>]
}


@param host 割り当てるホスト名
@param port 割り当てるポート番号
@see Socket.tcp_server_loop...

Socket.tcp_server_sockets(host, port) {|sockets| ...} -> object (403.0)

TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。

...番号を持ちます。

require 'socket'

# tcp_server_sockets returns は2つのソケットを返す
socket
s = Socket.tcp_server_sockets(1296)
p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]

# それぞれは IPv4 と IPv6 のソケット
socket
s.each {|s| p s.local_address }
#=>...
...
socket
s = Socket.tcp_server_sockets(0)
socket
s.each {|s| p s.local_address }
#=> #<Addrinfo: [::]:53114 TCP>
# #<Addrinfo: 0.0.0.0:53114 TCP>

# ブロックにソケットの配列が渡される
Socket
.tcp_server_sockets(0) {|sockets|
p sockets #=> [#<Socket:fd 3>, #<Socket:fd...
...4>]
}


@param host 割り当てるホスト名
@param port 割り当てるポート番号
@see Socket.tcp_server_loop...

Socket.tcp_server_sockets(port) -> [Socket] (403.0)

TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。

...番号を持ちます。

require 'socket'

# tcp_server_sockets returns は2つのソケットを返す
socket
s = Socket.tcp_server_sockets(1296)
p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]

# それぞれは IPv4 と IPv6 のソケット
socket
s.each {|s| p s.local_address }
#=>...
...
socket
s = Socket.tcp_server_sockets(0)
socket
s.each {|s| p s.local_address }
#=> #<Addrinfo: [::]:53114 TCP>
# #<Addrinfo: 0.0.0.0:53114 TCP>

# ブロックにソケットの配列が渡される
Socket
.tcp_server_sockets(0) {|sockets|
p sockets #=> [#<Socket:fd 3>, #<Socket:fd...
...4>]
}


@param host 割り当てるホスト名
@param port 割り当てるポート番号
@see Socket.tcp_server_loop...

Socket.tcp_server_sockets(port) {|sockets| ...} -> object (403.0)

TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。

...番号を持ちます。

require 'socket'

# tcp_server_sockets returns は2つのソケットを返す
socket
s = Socket.tcp_server_sockets(1296)
p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]

# それぞれは IPv4 と IPv6 のソケット
socket
s.each {|s| p s.local_address }
#=>...
...
socket
s = Socket.tcp_server_sockets(0)
socket
s.each {|s| p s.local_address }
#=> #<Addrinfo: [::]:53114 TCP>
# #<Addrinfo: 0.0.0.0:53114 TCP>

# ブロックにソケットの配列が渡される
Socket
.tcp_server_sockets(0) {|sockets|
p sockets #=> [#<Socket:fd 3>, #<Socket:fd...
...4>]
}


@param host 割り当てるホスト名
@param port 割り当てるポート番号
@see Socket.tcp_server_loop...

絞り込み条件を変える

Socket.pack_sockaddr_in(port, host) -> String (379.0)

指定したアドレスをlib:socket#pack_string で返します。port は、ポート番号を表す Fixnum あるいは、ポート 番号、サービス名を表す文字列です。

...指定したアドレスをlib:socket#pack_string
で返します。port は、ポート番号を表す Fixnum あるいは、ポート
番号、サービス名を表す文字列です。

@param port ポート番号を表す Fixnum あるいは、ポート番号、サービス名を表す文字...
...します。

@return 指定したアドレスを返します。

例:

require 'socket'
p Socket.sockaddr_in("echo", "localhost")
=> "\002\000\000\a\177\000\000\001\000\000\000\000\000\000\000\000"
p Socket.sockaddr_in("echo", "::1")
=> "\n\000\000\a\000\000\000\000\000\000\000\000\000\00...

Socket.sockaddr_in(port, host) -> String (379.0)

指定したアドレスをlib:socket#pack_string で返します。port は、ポート番号を表す Fixnum あるいは、ポート 番号、サービス名を表す文字列です。

...指定したアドレスをlib:socket#pack_string
で返します。port は、ポート番号を表す Fixnum あるいは、ポート
番号、サービス名を表す文字列です。

@param port ポート番号を表す Fixnum あるいは、ポート番号、サービス名を表す文字...
...します。

@return 指定したアドレスを返します。

例:

require 'socket'
p Socket.sockaddr_in("echo", "localhost")
=> "\002\000\000\a\177\000\000\001\000\000\000\000\000\000\000\000"
p Socket.sockaddr_in("echo", "::1")
=> "\n\000\000\a\000\000\000\000\000\000\000\000\000\00...

Socket.tcp_server_loop(host, port) {|sock,addr| ...} -> () (379.0)

TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。

...それが用いられます。

# 逐次的な echo サーバ
# 一度に一つのクライアントした取り扱えない
require 'socket'

Socket
.tcp_server_loop(16807) {|sock, client_addrinfo|
begin
IO.copy_stream(sock, sock)
ensure
sock.close
end
}

# ス...
...注意
require 'socket'

Socket
.tcp_server_loop(16807) {|sock, client_addrinfo|
Thread.new {
begin
IO.copy_stream(sock, sock)
ensure
sock.close
end
}
}

内部的には Socket.tcp_server_sockets で
生成したソケットを Socket.accept_loop で処...
...理しています。

@param host 割り当てるホスト名
@param port 割り当てるポート番号
@see Socket.tcp_server_sockets, Socket.accept_loop...

Socket.tcp_server_loop(port) {|sock,addr| ...} -> () (379.0)

TCP/IP で host:port で待ち受けるサーバ側のソケットを作成し、 新しい接続を受け入れるごとにブロックを呼び出します。

...それが用いられます。

# 逐次的な echo サーバ
# 一度に一つのクライアントした取り扱えない
require 'socket'

Socket
.tcp_server_loop(16807) {|sock, client_addrinfo|
begin
IO.copy_stream(sock, sock)
ensure
sock.close
end
}

# ス...
...注意
require 'socket'

Socket
.tcp_server_loop(16807) {|sock, client_addrinfo|
Thread.new {
begin
IO.copy_stream(sock, sock)
ensure
sock.close
end
}
}

内部的には Socket.tcp_server_sockets で
生成したソケットを Socket.accept_loop で処...
...理しています。

@param host 割り当てるホスト名
@param port 割り当てるポート番号
@see Socket.tcp_server_sockets, Socket.accept_loop...

UDPSocket#bind(host, port) -> 0 (376.0)

ソケットを host の port に bind(2) します。

...ソケットを host の port に bind(2) します。

bind したポートから BasicSocket#recv でデータを受け取ることができます。

@param host bind するホスト名文字列
@param port bind するポート番号...

絞り込み条件を変える

UDPSocket#connect(host, port) -> 0 (376.0)

ソケットを host の port に connect(2) します。

...UDPSocket#send で送り先のアドレスを指定せずに
データを送ることができます(connect しなくとも送り先のアドレスを明示すれば
データを送ることができます)。

require 'socket'

u1 = UDPSocket.new
u1.bind("127.0.0.1", 4913)
u2 = UDPSocket.n...

UDPSocket#send(mesg, flags, host, port) -> Integer (364.0)

UDP ソケットを介してデータを送ります。

...ります。

flags には Socket::MSG_* という定数の bitwise OR を渡します。
詳しい意味は send(2) を参照してください。

host, port の対、もしくは sockaddr_to で送り先を指定します。
送り先を省略した場合は UDPSocket#connect で接続した
...
...sockaddr_to にはlib:socket#pack_string もしくは
Addrinfo オブジェクトを指定します。

host, port に関しては lib:socket#host_format、
lib:socket#service_formatを参照してください。

2 引数、3 引数の形式の場合の動作は、
BasicSocket#send と同じです...

Addrinfo#connect_from(host, port) -> Socket (331.0)

引数で指定されたアドレスから 自身のアドレスへソケットを接続します。

...クが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済みSocket
オブジェクトが返されます。

引数で指定した...
...アドレスはソケット接続のローカル側のアドレスになります。

require 'socket'

Addrinfo.tcp("www.ruby-lang.org", 80).connect_from("0.0.0.0", 4649) {|s|
s.print "GET / HTTP/1.0\r\nHost: www.ruby-lang.org\r\n\r\n"
puts s.read
}

@param host ホスト(IP アドレ...

Addrinfo#connect_from(host, port) {|sock| ... } -> object (331.0)

引数で指定されたアドレスから 自身のアドレスへソケットを接続します。

...クが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済みSocket
オブジェクトが返されます。

引数で指定した...
...アドレスはソケット接続のローカル側のアドレスになります。

require 'socket'

Addrinfo.tcp("www.ruby-lang.org", 80).connect_from("0.0.0.0", 4649) {|s|
s.print "GET / HTTP/1.0\r\nHost: www.ruby-lang.org\r\n\r\n"
puts s.read
}

@param host ホスト(IP アドレ...

Addrinfo#connect_to(host, port) -> Socket (331.0)

自身のアドレスから指定したホストへソケット接続します。

...クが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済み Socket
オブジェクトが返されます。

@param host ホス...

絞り込み条件を変える

Addrinfo#connect_to(host, port) {|sock| ... } -> object (331.0)

自身のアドレスから指定したホストへソケット接続します。

...クが渡されたときにはそのブロックに接続済み Socket
オブジェクトが渡されます。ブロックの返り値がメソッドの返り値となります。
ブロックを省略した場合は、接続済み Socket
オブジェクトが返されます。

@param host ホス...

Socket.udp_server_loop(host, port) {|msg, msg_src| ... } -> () (331.0)

UDP のサーバを起動して、メッセージが来るごとに ブロックを呼び出します。

...と msg_src の 2 つで、
msg は受け取ったメッセージ文字列で、 msg_src は
通信相手の Socket::UDPSource オブジェクトです。

@param host 割り当てるホスト名
@param port 割り当てるポート番号
@see Socket.udp_server_sockets, Socket.udp_server_loop_on...

Socket.udp_server_loop(port) {|msg, msg_src| ... } -> () (331.0)

UDP のサーバを起動して、メッセージが来るごとに ブロックを呼び出します。

...と msg_src の 2 つで、
msg は受け取ったメッセージ文字列で、 msg_src は
通信相手の Socket::UDPSource オブジェクトです。

@param host 割り当てるホスト名
@param port 割り当てるポート番号
@see Socket.udp_server_sockets, Socket.udp_server_loop_on...

Addrinfo#family_addrinfo(host, port) -> Addrinfo (328.0)

引数から自身に「似た」Addrinfo オブジェクトを生成します。

...「似た」の意味はプロトコルファミリ、ソケットタイプ、プロトコルが
同じことを意味します。

require 'socket'

Addrinfo.tcp("0.0.0.0", 4649).family_addrinfo("www.ruby-lang.org", 80)
#=> #<Addrinfo: 221.186.184.68:80 TCP (www.ruby-lang.org:80)>

Addr...
...info.unix("/tmp/sock").family_addrinfo("/tmp/sock2")
#=> #<Addrinfo: /tmp/sock2 SOCK_STREAM>

@param host ホスト(IP アドレスもしくはホスト名)
@param port ポート番号(整数)もしくはサービス名(文字列)
@param path Unix domain socket のパス...

Addrinfo.tcp(host, port) -> Addrinfo (328.0)

TCP アドレスに対する Addrinfo オブジェクトを返します。

...TCP アドレスに対する Addrinfo オブジェクトを返します。

require 'socket'

Addrinfo.tcp("localhost", "smtp")
#=> #<Addrinfo: 127.0.0.1:25 TCP (localhost:smtp)>

@param host ホスト(IP アドレスもしくはホスト名)
@param port ポート番号(整数)もしくは...

絞り込み条件を変える

Addrinfo.udp(host, port) -> Addrinfo (328.0)

UDP アドレスに対する Addrinfo オブジェクトを返します。

...UDP アドレスに対する Addrinfo オブジェクトを返します。

require 'socket'

Addrinfo.udp("localhost", "daytime")
#=> #<Addrinfo: 127.0.0.1:13 UDP (localhost:daytime)>

@param host ホスト(IP アドレスもしくはホスト名)
@param port ポート番号(整数)もし...

UDPSocket#send(mesg, flags) -> Integer (64.0)

UDP ソケットを介してデータを送ります。

...ります。

flags には Socket::MSG_* という定数の bitwise OR を渡します。
詳しい意味は send(2) を参照してください。

host, port の対、もしくは sockaddr_to で送り先を指定します。
送り先を省略した場合は UDPSocket#connect で接続した
...
...sockaddr_to にはlib:socket#pack_string もしくは
Addrinfo オブジェクトを指定します。

host, port に関しては lib:socket#host_format、
lib:socket#service_formatを参照してください。

2 引数、3 引数の形式の場合の動作は、
BasicSocket#send と同じです...

UDPSocket#send(mesg, flags, sockaddr_to) -> Integer (64.0)

UDP ソケットを介してデータを送ります。

...ります。

flags には Socket::MSG_* という定数の bitwise OR を渡します。
詳しい意味は send(2) を参照してください。

host, port の対、もしくは sockaddr_to で送り先を指定します。
送り先を省略した場合は UDPSocket#connect で接続した
...
...sockaddr_to にはlib:socket#pack_string もしくは
Addrinfo オブジェクトを指定します。

host, port に関しては lib:socket#host_format、
lib:socket#service_formatを参照してください。

2 引数、3 引数の形式の場合の動作は、
BasicSocket#send と同じです...

TCPSocket (61.0)

インターネットドメインのストリーム型ソケットのクラスです。

...をそのままサーバに転送するプログラムは以下の
ようになります。

require "socket"

port = if ARGV.size > 0 then ARGV.shift else 4444 end
print port, "\n"

s = TCPSocket.open("localhost", port)

while gets
s.write($_)
print(s.gets)
end
s.close...

IPSocket#addr -> Array (55.0)

ソケットの接続情報を表す配列を返します。配列の各要素は第1要 素が文字列 "AF_INET", "AF_INET6" など、第2要素が port 番号、第3要素がホストを表 す文字列、第4要素がホストの IP アドレスを表す文字列 (octet decimal や hexadecimal) です。

...Errno::EXXX getsockname(2) が 0 未満の値を返した場合に発生します。

例:

require 'socket'

serv = TCPServer.new("localhost", 0)
p serv.addr #=> ["AF_INET", 46102, "localhost.localdomain", "127.0.0.1"]
c = TCPSocket.new(*serv.addr.values_at(3,1))
s = serv.accept...

絞り込み条件を変える

Socket.unpack_sockaddr_in(sockaddr) -> Array (55.0)

lib:socket#pack_stringを unpack したアドレスを返します。返される値は [port, ipaddr] の配列です。

...lib:socket#pack_stringを
unpack したアドレスを返します。返される値は [port, ipaddr]
の配列です。

@param sockaddr lib:socket#pack_stringを指定します。

例:

require 'socket'
p Socket.unpack_sockaddr_in(Socket.sockaddr_in("echo", "localhost"))
=> [7, "127.0.0.1...
..."]
p Socket.unpack_sockaddr_in(Socket.sockaddr_in("echo", "::1"))
=> [7, "::1"]...

Socket::Constants::IFF_OVS_DATAPATH (55.0)

device used as Open vSwitch datapath port

device used as Open vSwitch datapath port

Socket::IFF_OVS_DATAPATH (55.0)

device used as Open vSwitch datapath port

device used as Open vSwitch datapath port

Addrinfo#family_addrinfo(path) -> Addrinfo (28.0)

引数から自身に「似た」Addrinfo オブジェクトを生成します。

...「似た」の意味はプロトコルファミリ、ソケットタイプ、プロトコルが
同じことを意味します。

require 'socket'

Addrinfo.tcp("0.0.0.0", 4649).family_addrinfo("www.ruby-lang.org", 80)
#=> #<Addrinfo: 221.186.184.68:80 TCP (www.ruby-lang.org:80)>

Addr...
...info.unix("/tmp/sock").family_addrinfo("/tmp/sock2")
#=> #<Addrinfo: /tmp/sock2 SOCK_STREAM>

@param host ホスト(IP アドレスもしくはホスト名)
@param port ポート番号(整数)もしくはサービス名(文字列)
@param path Unix domain socket のパス...

Addrinfo#ip_address -> String (25.0)

IP アドレスを文字列で返します。

...IP アドレスを文字列で返します。

require 'socket'

Addrinfo.tcp("127.0.0.1", 80).ip_address #=> "127.0.0.1"
Addrinfo.tcp("::1", 80).ip_address #=> "::1"

@see Addrinfo#ip_port, Addrinfo#ip_unpack...

絞り込み条件を変える

Addrinfo#ip_unpack -> [String, Integer] (25.0)

IP アドレスとポート番号を 2 要素の配列で返します。

...IP アドレスとポート番号を 2 要素の配列で返します。

require 'socket'

Addrinfo.tcp("127.0.0.1", 80).ip_unpack #=> ["127.0.0.1", 80]
Addrinfo.tcp("::1", 80).ip_unpack #=> ["::1", 80]

@see Addrinfo#ip_address, Addrinfo#ip_port...

Addrinfo.ip(host) -> Addrinfo (25.0)

IP アドレスに対する Addrinfo オブジェクトを返します。

...port, socktype, protocol は 0 で初期化されます。
つまりこの返り値はソケットを生成するには不適です。

require 'socket'

Addrinfo.ip("localhost") #=> #<Addrinfo: 127.0.0.1 (localhost)>

@param host ホスト(IP アドレスもしくはホスト名)
@see Addrinfo....

IPSocket#recvfrom(maxlen, flags = 0) -> Array (25.0)

recv と同様にソケットからデータを受け取りますが、 戻り値は文字列と相手ソケットのアドレス (形式は IPSocket#addr 参照) のペアです。引数につ いては BasicSocket#recv と同様です。

...からデータを受け取りますが、
戻り値は文字列と相手ソケットのアドレス (形式は
IPSocket#addr 参照) のペアです。引数につ
いては BasicSocket#recv と同様です。

@param maxlen 受け取る文字列の最大の長さを指定します。

@param flags...
...X 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...

Socket.udp_server_recv(sockets) {|msg, msg_src| ... } -> () (25.0)

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

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

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

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

require 'socket'

udp_server_sockets(host, port) {|sockets|
loop {
readable, _, _ = IO.select(sockets)
udp_serv...
...er_recv(readable) {|msg, msg_src| ... }
}
}

@param sockets 読み込むソケットの配列...