ライブラリ
- socket (17)
キーワード
- getaddrinfo (1)
- gethostbyname (1)
- getifaddrs (1)
- getnameinfo (1)
-
ip
_ address _ list (1) - tcp (2)
-
tcp
_ server _ loop (2) -
tcp
_ server _ sockets (4) -
udp
_ server _ sockets (4)
検索結果
先頭5件
- Socket
. ip _ address _ list -> [Addrinfo] - Socket
. getaddrinfo(nodename , servname , family=nil , socktype=nil , protocol=nil , flags=nil) -> Array - Socket
. gethostbyname(host) -> Array - Socket
. getnameinfo(sa , flags = 0) -> Array - Socket
. tcp(host , port , local _ host=nil , local _ port=nil , connect _ timeout: nil) -> Socket
-
Socket
. ip _ address _ list -> [Addrinfo] (18358.0) -
ローカルの IP アドレスを配列で返します。
ローカルの IP アドレスを配列で返します。 -
Socket
. getaddrinfo(nodename , servname , family=nil , socktype=nil , protocol=nil , flags=nil) -> Array (91.0) -
2553で定義された getaddrinfo() の機能を提供するクラスメソッド。この関数は gethostbyname() や getservbyname() の代わりとして用意されており、 IP のバージョンに依存しないプログラムを書くための標準的な API です。
...名を指定します。 必須引数です。 (lib:socket#host_formatを参照)
@param servname サービス名を指定します。 必須引数です。 (lib:socket#service_formatを参照)
@param family アドレスファミリー。Socket::Constants::AF_INET など、AF_ で始まる定数を......指定します。
@param socktype ソケットタイプ。 Socket::Constants::SOCK_STREAM など、 SOCK_ で始まる定数を指定します。
@param protocol プロトコル。Socket::Constants::IPPROTO_IP など、IPPROTO_ で始まる定数を指定します。
@param flags getaddrinfo(3)......数に指定する addrinfo 構造体の ai_flags メンバに相当する整数。 Socket::AI_PASSIVEなど。
@return 7つの要素からなるアドレス情報に関する配列を返します。
@raise SocketError getaddrinfo(3)がエラーを返したときに発生する例外です
@see Ad... -
Socket
. gethostbyname(host) -> Array (55.0) -
ホスト名または IP アドレス(指定方法に関しては lib:socket#host_formatを参照) からホストの情報を返します。
...ホスト名または IP アドレス(指定方法に関しては
lib:socket#host_formatを参照)
からホストの情報を返します。
@param host 文字列でホストを指定します。
@return ホスト情報を含んだ4要素の配列を返します。
=== 返り値のホスト......) ならば
Socket.unpack_sockaddr_in で unpack できます。
=== 使用例
irb(main):009:0> require 'socket'
irb(main):009:0> Socket.gethostbyname("210.251.121.214")
["helium.ruby-lang.org", ["helium"], 2, "\322\373y\326"]
irb(main):009:0> Socket.unpack_sockaddr_in(Socket.gethostby... -
Socket
. getnameinfo(sa , flags = 0) -> Array (55.0) -
2553 で定義された getnameinfo() の機能を提供するク ラスメソッド。 gethostbyaddr() や getservbyport() の代 わりとして用意されています。IPのバージョンに依存しないプログラムを 書くための標準的なAPIです。
...ise SocketError getnameinfo(3) がエラーを起こした場合に生じる例外
@see Addrinfo#getnameinfo
=== 引数 sa について
引数 sa には文字列か配列を与えます。文字列の場合は sockaddr 構造体
のパック文字列を与えます。具体的には BasicSocket#ge......素が4つの場合:
[アドレスファミリー, サービス, 任意, アドレスを表す文字列]
アドレスファミリーには Socket::AF_INET 等の定数の他に文字列
で "AF_INET" もしくは "AF_INET6" もしくは nil が
指定できます。ただしIPv6が使えな......なります。アドレスファミリーに
nil を指定することは Socket::AF_UNSPEC を指定すること
と等価です。
サービス、ホストの指定に関しては lib:socket#service_format、
lib:socket#host_formatを参照してください。
要素が3つの場合でも、... -
Socket
. tcp(host , port , local _ host=nil , local _ port=nil , connect _ timeout: nil) -> Socket (55.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 (55.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 _ server _ loop(host , port) {|sock , addr| . . . } -> () (55.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| . . . } -> () (55.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 _ sockets(host , port) -> [Socket] (55.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。
...番号を持ちます。
require 'socket'
# tcp_server_sockets returns は2つのソケットを返す
sockets = Socket.tcp_server_sockets(1296)
p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]
# それぞれは IPv4 と IPv6 のソケット
sockets.each {|s| p s.local_address }
#=>......
sockets = Socket.tcp_server_sockets(0)
sockets.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 (55.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。
...番号を持ちます。
require 'socket'
# tcp_server_sockets returns は2つのソケットを返す
sockets = Socket.tcp_server_sockets(1296)
p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]
# それぞれは IPv4 と IPv6 のソケット
sockets.each {|s| p s.local_address }
#=>......
sockets = Socket.tcp_server_sockets(0)
sockets.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] (55.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。
...番号を持ちます。
require 'socket'
# tcp_server_sockets returns は2つのソケットを返す
sockets = Socket.tcp_server_sockets(1296)
p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]
# それぞれは IPv4 と IPv6 のソケット
sockets.each {|s| p s.local_address }
#=>......
sockets = Socket.tcp_server_sockets(0)
sockets.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 (55.0) -
TCP/IP で host:port で待ち受けるサーバ側のソケットを 作成します。
...番号を持ちます。
require 'socket'
# tcp_server_sockets returns は2つのソケットを返す
sockets = Socket.tcp_server_sockets(1296)
p sockets #=> [#<Socket:fd 3>, #<Socket:fd 4>]
# それぞれは IPv4 と IPv6 のソケット
sockets.each {|s| p s.local_address }
#=>......
sockets = Socket.tcp_server_sockets(0)
sockets.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
. udp _ server _ sockets(host , port) -> [Sockets] (43.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 (43.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] (43.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 (43.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
. getifaddrs -> [Socket :: Ifaddr] (25.0) -
インターフェイスのアドレスを Socket::Ifaddr の配列で返します。
...スを Socket::Ifaddr の配列で返します。
本メソッドはマルチキャスト通信が可能なインターフェイスを見つけるために使う事ができます。
require 'socket'
pp Socket.getifaddrs.reject {|ifaddr|
!ifaddr.addr.ip? || (ifaddr.flags & Socket::IFF_MUL......nfo: fe80::216:3eff:fe95:88bb%eth0>]]
例(GNU/Linux):
require 'socket'
pp Socket.getifaddrs
#=> [#<Socket::Ifaddr lo UP,LOOPBACK,RUNNING,0x10000 PACKET[protocol=0 lo hatype=772 HOST hwaddr=00:00:00:00:00:00]>,
# #<Socket::Ifaddr eth0 UP,BROADCAST,RUNNING,MULTICAST,0x10000 PACKET[protoc......eth0 hatype=1 HOST hwaddr=ff:ff:ff:ff:ff:ff]>,
# #<Socket::Ifaddr sit0 NOARP PACKET[protocol=0 sit0 hatype=776 HOST hwaddr=00:00:00:00]>,
# #<Socket::Ifaddr lo UP,LOOPBACK,RUNNING,0x10000 127.0.0.1 netmask=255.0.0.0>,
# #<Socket::Ifaddr eth0 UP,BROADCAST,RUNNING,MULTICAST,0x10000 221...