種類
- 特異メソッド (48)
- インスタンスメソッド (33)
- 文書 (24)
- モジュール関数 (21)
- ライブラリ (12)
モジュール
- Timeout (21)
キーワード
- getaddrinfo (12)
- gethostbyaddr (12)
- pack (21)
- pack テンプレート文字列 (12)
-
ruby 1
. 9 feature (12) - socket (12)
- timeout (21)
- unpack (12)
検索結果
先頭5件
- Socket
. gethostbyname(host) -> Array - TCPSocket
. gethostbyname(host) -> Array - Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object - Timeout
. # timeout(sec , exception _ class , message) {|i| . . . } -> object - Socket
. getaddrinfo(nodename , servname , family=nil , socktype=nil , protocol=nil , flags=nil) -> Array
-
Socket
. gethostbyname(host) -> Array (18113.0) -
ホスト名または IP アドレス(指定方法に関しては lib:socket#host_formatを参照) からホストの情報を返します。
...きます。
=== 使用例
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.gethostbyname("210.251.121.214")[3])[1]
"210.251.121.214"... -
TCPSocket
. gethostbyname(host) -> Array (18107.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"]... -
Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object (18.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...の処理を Ruby で実装しなおすか C 側で Ruby
のスレッドを意識してあげる必要があります。
以下の例では、gethostbyname(およそ0.6秒処理に時間がかかっている) が終了した直後((A)の箇所)で Timeout::Error 例外があがっています。......t が割り込めない
require 'timeout'
require 'socket'
t = 0.1
start = Time.now
begin
Timeout.timeout(t) {
p TCPSocket.gethostbyname("www.ruby-lang.org")
# (A)
}
ensure
p Time.now - start
end
# 実行例
=> ["helium.ruby-lang.org", [], 2, "210.251.121.2.......689331
/usr/local/lib/ruby/1.6/timeout.rb:37: execution expired (Timeout::Error)
from -:6:in `timeout'
from -:6
# gethostbyname が0.1秒かからない場合は例外が発生しないので
# その場合は、t に小さい数値(0.000001のような)に変える... -
Timeout
. # timeout(sec , exception _ class , message) {|i| . . . } -> object (18.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...の処理を Ruby で実装しなおすか C 側で Ruby
のスレッドを意識してあげる必要があります。
以下の例では、gethostbyname(およそ0.6秒処理に時間がかかっている) が終了した直後((A)の箇所)で Timeout::Error 例外があがっています。......t が割り込めない
require 'timeout'
require 'socket'
t = 0.1
start = Time.now
begin
Timeout.timeout(t) {
p TCPSocket.gethostbyname("www.ruby-lang.org")
# (A)
}
ensure
p Time.now - start
end
# 実行例
=> ["helium.ruby-lang.org", [], 2, "210.251.121.2.......689331
/usr/local/lib/ruby/1.6/timeout.rb:37: execution expired (Timeout::Error)
from -:6:in `timeout'
from -:6
# gethostbyname が0.1秒かからない場合は例外が発生しないので
# その場合は、t に小さい数値(0.000001のような)に変える... -
Socket
. getaddrinfo(nodename , servname , family=nil , socktype=nil , protocol=nil , flags=nil) -> Array (16.0) -
2553で定義された getaddrinfo() の機能を提供するクラスメソッド。この関数は gethostbyname() や getservbyname() の代わりとして用意されており、 IP のバージョンに依存しないプログラムを書くための標準的な API です。
...2553で定義された
getaddrinfo() の機能を提供するクラスメソッド。この関数は
gethostbyname() や getservbyname() の代わりとして用意されており、
IP のバージョンに依存しないプログラムを書くための標準的な API です。
@param nodename... -
Socket
. gethostbyaddr(host , type = Socket :: AF _ INET) -> Array (16.0) -
sockaddr 構造体をパックした文字列からホスト情報を返します。 ホスト情報の構造は Socket.gethostbyname と同じです。 type には、アドレスタイプ(デフォルトは Socket::AF_INET)を指定します。
...sockaddr 構造体をパックした文字列からホスト情報を返します。
ホスト情報の構造は Socket.gethostbyname と同じです。
type には、アドレスタイプ(デフォルトは
Socket::AF_INET)を指定します。
@param host ホストを文字列で指定します... -
socket (12.0)
-
socket はプロセス外部との通信 (プロセス間通信、ホスト間通信) を実現します。
...org:http)>]
* IPSocket.getaddress("www.ruby-lang.org") => "210.163.138.100"
* TCPSocket.gethostbyname("www.ruby-lang.org") => ["beryllium.ruby-lang.org", [], 2, "210.163.138.100"]
* Socket.gethostbyname("www.ruby-lang.org") => ["beryllium.ruby-lang.org", [], 2, "\322\243\212d"]
* Socket.geta... -
Array
# pack(template) -> String (6.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...]
n # => -2
//}
: IPアドレス
//emlist[][ruby]{
require 'socket'
official_hostname, alias_hostnames, address_family, *address_list = Socket.gethostbyname("localhost")
address_list.find {|address| address.size == 4 }.unpack("C4").join(".")
# => "127.0.0.1"
"127.0.0.1".split(".").collect {|c| c.t... -
Array
# pack(template , buffer: String . new) -> String (6.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...]
n # => -2
//}
: IPアドレス
//emlist[][ruby]{
require 'socket'
official_hostname, alias_hostnames, address_family, *address_list = Socket.gethostbyname("localhost")
address_list.find {|address| address.size == 4 }.unpack("C4").join(".")
# => "127.0.0.1"
"127.0.0.1".split(".").collect {|c| c.t...