キーワード
- getaddress (1)
- getaddrinfo (1)
- gethostbyaddr (1)
- gethostbyname (2)
- gethostname (1)
- getifaddrs (1)
- getnameinfo (1)
- ip (1)
- new (3)
- open (3)
-
pack
_ sockaddr _ in (1) -
sockaddr
_ in (1) - tcp (3)
-
tcp
_ server _ loop (2) -
tcp
_ server _ sockets (4) - udp (1)
-
udp
_ server _ loop (2) -
udp
_ server _ recv (1) -
udp
_ server _ sockets (4)
検索結果
先頭5件
-
Socket
. gethostbyname(host) -> Array (18679.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
. gethostbyaddr(host , type = Socket :: AF _ INET) -> Array (18631.0) -
sockaddr 構造体をパックした文字列からホスト情報を返します。 ホスト情報の構造は Socket.gethostbyname と同じです。 type には、アドレスタイプ(デフォルトは Socket::AF_INET)を指定します。
...は Socket.gethostbyname と同じです。
type には、アドレスタイプ(デフォルトは
Socket::AF_INET)を指定します。
@param host ホストを文字列で指定します。
@param type アドレスタイプ(デフォルトはSocket::AF_INET)を指定します。
@raise SocketEr... -
TCPSocket
. gethostbyname(host) -> Array (18631.0) -
ホスト名または IP アドレス (整数または"127.0.0.1" のような文字列)からホストの情報を返します。ホスト情報は、ホ スト名、ホストの別名の配列、ホストのアドレスタイプ、ホストの アドレスを各要素とする配列です。ホストのアドレスは octet decimal の文字列 ("127.0.0.1"のような文字列) や IPv6 アドレス ("::1" のような文字列) です。
...。
@return ホスト名、ホストの別名の配列、ホストのアドレスタイプ、ホストのアドレスを各要素とする配列を返します。
例:
require 'socket'
p TCPSocket.gethostbyname("www.ruby-lang.org")
#=> ["beryllium.ruby-lang.org", [], 2, "210.163.138.100"]... -
Socket
. gethostname -> String (18310.0) -
システムの標準のホスト名を取得します。
...の標準のホスト名を取得します。
ホストの別名やアドレスなど他の情報を得るには
Socket.getaddrinfo を使ってください。
ただし、これは不可能な場合もあります。
例:
require 'socket'
p Socket.gethostname #=> "helium.ruby-lang.org"... -
TCPSocket
. new(host , service , local _ host=nil , local _ service=nil , connect _ timeout: nil) -> TCPSocket (772.0) -
host で指定したホストの service で指定したポートと接続したソケッ トを返します。host はホスト名、またはインターネットアドレスを 示す文字列、service は /etc/services (または NIS) に登録されている サービス名かポート番号です。
host で指定したホストの service で指定したポートと接続したソケッ
トを返します。host はホスト名、またはインターネットアドレスを
示す文字列、service は /etc/services (または NIS) に登録されている
サービス名かポート番号です。
引数 local_host, local_service を指定した場合、そのアドレス
に対して bind(2) します。
@param host ホスト名、またはインターネットアドレスを示す文字列を指定します。
@param service /etc/services (または N... -
TCPSocket
. open(host , service , local _ host=nil , local _ service=nil , connect _ timeout: nil) -> TCPSocket (772.0) -
host で指定したホストの service で指定したポートと接続したソケッ トを返します。host はホスト名、またはインターネットアドレスを 示す文字列、service は /etc/services (または NIS) に登録されている サービス名かポート番号です。
host で指定したホストの service で指定したポートと接続したソケッ
トを返します。host はホスト名、またはインターネットアドレスを
示す文字列、service は /etc/services (または NIS) に登録されている
サービス名かポート番号です。
引数 local_host, local_service を指定した場合、そのアドレス
に対して bind(2) します。
@param host ホスト名、またはインターネットアドレスを示す文字列を指定します。
@param service /etc/services (または N... -
Socket
. tcp(host , port , local _ host=nil , local _ port=nil , connect _ timeout: nil) -> Socket (724.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 (724.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... -
TCPServer
. new(host=nil , service) -> TCPServer (472.0) -
新しいサーバー接続をオープンします。service は /etc/services (または NIS) に登録されているサービ ス名かポート番号で指定します。host を指定した時は 指定したホストに対しての接続だけを受け付けます。
...、接続を特定できます。
host に指定できる形式はlib:socket#host_formatを見てください。
@param host 接続したいホストを指定します。
host に指定できる形式はlib:socket#host_formatを見てください。
@param service /etc/services (ま... -
TCPServer
. open(host=nil , service) -> TCPServer (472.0) -
新しいサーバー接続をオープンします。service は /etc/services (または NIS) に登録されているサービ ス名かポート番号で指定します。host を指定した時は 指定したホストに対しての接続だけを受け付けます。
...、接続を特定できます。
host に指定できる形式はlib:socket#host_formatを見てください。
@param host 接続したいホストを指定します。
host に指定できる形式はlib:socket#host_formatを見てください。
@param service /etc/services (ま... -
SOCKSSocket
. new(host , service) -> SOCKSSocket (430.0) -
host で指定したホストの service で指定したポートと接続したソケッ トを返します。host はホスト名、またはインターネットアドレスを 示す文字列、service は /etc/services (または NIS) に登録されている サービス名かポート番号です。
host で指定したホストの service で指定したポートと接続したソケッ
トを返します。host はホスト名、またはインターネットアドレスを
示す文字列、service は /etc/services (または NIS) に登録されている
サービス名かポート番号です。
@param host ホスト名、またはインターネットアドレスを示す文字列を指定します。
@param service /etc/services (または NIS) に登録されているサービス名かポート番号です。 -
SOCKSSocket
. open(host , service) -> SOCKSSocket (430.0) -
host で指定したホストの service で指定したポートと接続したソケッ トを返します。host はホスト名、またはインターネットアドレスを 示す文字列、service は /etc/services (または NIS) に登録されている サービス名かポート番号です。
host で指定したホストの service で指定したポートと接続したソケッ
トを返します。host はホスト名、またはインターネットアドレスを
示す文字列、service は /etc/services (または NIS) に登録されている
サービス名かポート番号です。
@param host ホスト名、またはインターネットアドレスを示す文字列を指定します。
@param service /etc/services (または NIS) に登録されているサービス名かポート番号です。 -
Socket
. tcp _ server _ sockets(host , port) -> [Socket] (382.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 (382.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] (382.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 (382.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 _ 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
. pack _ sockaddr _ in(port , host) -> String (334.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 (334.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... -
Addrinfo
. ip(host) -> Addrinfo (331.0) -
IP アドレスに対する Addrinfo オブジェクトを返します。
...port, socktype, protocol は 0 で初期化されます。
つまりこの返り値はソケットを生成するには不適です。
require 'socket'
Addrinfo.ip("localhost") #=> #<Addrinfo: 127.0.0.1 (localhost)>
@param host ホスト(IP アドレスもしくはホスト名)
@see Addrinfo.... -
Addrinfo
. tcp(host , port) -> Addrinfo (331.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 (331.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 ポート番号(整数)もし... -
IPSocket
. getaddress(host) -> String (331.0) -
ホスト名からホストのアドレスを返します。ホストのアドレスは文 字列は octet decimal の文字列 (例: 127.0.0.1) です。
...ホストのアドレスを返します。ホストのアドレスは文
字列は octet decimal の文字列 (例: 127.0.0.1) です。
@param host ホスト名を文字列で指定します。
例:
require 'socket'
p IPSocket.getaddress("www.ruby-lang.org") #=> "210.163.138.100"... -
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
. getifaddrs -> [Socket :: Ifaddr] (82.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... -
Socket
. tcp _ server _ sockets(port) -> [Socket] (82.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 (82.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(port) -> [Sockets] (82.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 (82.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 _ loop(port) {|sock , addr| . . . } -> () (79.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
. getaddrinfo(nodename , servname , family=nil , socktype=nil , protocol=nil , flags=nil) -> Array (46.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
. udp _ server _ loop(port) {|msg , msg _ src| . . . } -> () (31.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
. getnameinfo(sa , flags = 0) -> Array (28.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
. udp _ server _ recv(sockets) {|msg , msg _ src| . . . } -> () (28.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 読み込むソケットの配列...