種類
- 特異メソッド (44)
- インスタンスメソッド (30)
- 文書 (22)
- モジュール関数 (19)
- ライブラリ (11)
モジュール
- Timeout (19)
キーワード
- getaddrinfo (11)
- gethostbyaddr (11)
- pack (19)
- pack テンプレート文字列 (11)
-
ruby 1
. 9 feature (11) - socket (11)
- timeout (19)
- unpack (11)
検索結果
先頭5件
-
Socket
. gethostbyname(host) -> Array (18219.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 (18219.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"]... -
ruby 1
. 9 feature (1914.0) -
ruby 1.9 feature ruby version 1.9.0 は開発版です。 以下にあげる機能は将来削除されたり互換性のない仕様変更がなされるかもしれません。 1.9.1 以降は安定版です。 バグ修正がメインになります。
...w]: 追加されたクラス/メソッドなど
* [compat]: 変更されたクラス/メソッドなど(互換性のある変更) (only backward-compatibility) (影響の範囲が小さいと思われる変更もこちら)
* [change]: 変更されたクラス/メソッドなど(互換性......= 1.9.0
=== 2006-09-16
: Struct#inspect
=== 2006-09-14
: digest.rb
: Digest::Base.file
=== 2006-09-13
: Hash#compare_by_identity
: Hash#compare_by_identity?
: Hash#identical
: Hash#identical?
=== 2006-09-12
: Hash#compare_by_identity
: Hash#compare_by_identity?
=== 2006-09-11
: Hash#identi......-dev:28443>)), ((<ruby-dev:28440>))
: rubygems がある場合には ri で考慮するようになりました
: スレッド死亡時のエラーメッセージをちゃんと表示するようスレッドスケジューリングが調整されました
: Socket.gethostbyname 修正 ((<ruby-... -
Array
# pack(template) -> String (406.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...)
//emlist[][ruby]{
"\x01\xFE".unpack("c*") # => [1, -2]
[1, -2].pack("c*") # => "\x01\xFE"
[1, 254].pack("c*") # => "\x01\xFE"
//}
: C
unsigned char (8bit 符号なし整数)
//emlist[][ruby]{
"\x01\xFE".unpack("C*") # => [1, 254]
[1, -2].pack("C*") # => "\x01\xFE"
[1, 254].pack("C*") # =>......*") # => [513, -514]
[513, 65022].pack("s*") # => "\x01\x02\xFE\xFD"
[513, -514].pack("s*") # => "\x01\x02\xFE\xFD"
//}
ビッグエンディアン (SPARC64):
//emlist[][ruby]{
"\x01\x02\xFE\xFD".unpack("s*") # => [258, -259]
[258, 65277].pack("s*") # => "\x01\x02\xFE\xFD"
[258, -259].pack("s*......y]{
s = "\xFF\xFF\xFF\xFE"
n = s.unpack("N").pack("l").unpack("l")[0]
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")... -
Array
# pack(template , buffer: String . new) -> String (406.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
...)
//emlist[][ruby]{
"\x01\xFE".unpack("c*") # => [1, -2]
[1, -2].pack("c*") # => "\x01\xFE"
[1, 254].pack("c*") # => "\x01\xFE"
//}
: C
unsigned char (8bit 符号なし整数)
//emlist[][ruby]{
"\x01\xFE".unpack("C*") # => [1, 254]
[1, -2].pack("C*") # => "\x01\xFE"
[1, 254].pack("C*") # =>......*") # => [513, -514]
[513, 65022].pack("s*") # => "\x01\x02\xFE\xFD"
[513, -514].pack("s*") # => "\x01\x02\xFE\xFD"
//}
ビッグエンディアン (SPARC64):
//emlist[][ruby]{
"\x01\x02\xFE\xFD".unpack("s*") # => [258, -259]
[258, 65277].pack("s*") # => "\x01\x02\xFE\xFD"
[258, -259].pack("s*......y]{
s = "\xFF\xFF\xFF\xFE"
n = s.unpack("N").pack("l").unpack("l")[0]
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")... -
String
# unpack(template) -> Array (406.0) -
Array#pack で生成された文字列を テンプレート文字列 template にしたがってアンパックし、 それらの要素を含む配列を返します。
...)
//emlist[][ruby]{
"\x01\xFE".unpack("c*") # => [1, -2]
[1, -2].pack("c*") # => "\x01\xFE"
[1, 254].pack("c*") # => "\x01\xFE"
//}
: C
unsigned char (8bit 符号なし整数)
//emlist[][ruby]{
"\x01\xFE".unpack("C*") # => [1, 254]
[1, -2].pack("C*") # => "\x01\xFE"
[1, 254].pack("C*") # =>......*") # => [513, -514]
[513, 65022].pack("s*") # => "\x01\x02\xFE\xFD"
[513, -514].pack("s*") # => "\x01\x02\xFE\xFD"
//}
ビッグエンディアン (SPARC64):
//emlist[][ruby]{
"\x01\x02\xFE\xFD".unpack("s*") # => [258, -259]
[258, 65277].pack("s*") # => "\x01\x02\xFE\xFD"
[258, -259].pack("s*......y]{
s = "\xFF\xFF\xFF\xFE"
n = s.unpack("N").pack("l").unpack("l")[0]
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")... -
pack テンプレート文字列 (306.0)
-
pack テンプレート文字列
...)
//emlist[][ruby]{
"\x01\xFE".unpack("c*") # => [1, -2]
[1, -2].pack("c*") # => "\x01\xFE"
[1, 254].pack("c*") # => "\x01\xFE"
//}
: C
unsigned char (8bit 符号なし整数)
//emlist[][ruby]{
"\x01\xFE".unpack("C*") # => [1, 254]
[1, -2].pack("C*") # => "\x01\xFE"
[1, 254].pack("C*") # =>......*") # => [513, -514]
[513, 65022].pack("s*") # => "\x01\x02\xFE\xFD"
[513, -514].pack("s*") # => "\x01\x02\xFE\xFD"
//}
ビッグエンディアン (SPARC64):
//emlist[][ruby]{
"\x01\x02\xFE\xFD".unpack("s*") # => [258, -259]
[258, 65277].pack("s*") # => "\x01\x02\xFE\xFD"
[258, -259].pack("s*......y]{
s = "\xFF\xFF\xFF\xFE"
n = s.unpack("N").pack("l").unpack("l")[0]
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")... -
Socket
. getaddrinfo(nodename , servname , family=nil , socktype=nil , protocol=nil , flags=nil) -> Array (218.0) -
2553で定義された getaddrinfo() の機能を提供するクラスメソッド。この関数は gethostbyname() や getservbyname() の代わりとして用意されており、 IP のバージョンに依存しないプログラムを書くための標準的な API です。
...2553で定義された
getaddrinfo() の機能を提供するクラスメソッド。この関数は
gethostbyname() や getservbyname() の代わりとして用意されており、
IP のバージョンに依存しないプログラムを書くための標準的な API です。
@param nodename......列です。
* 第0要素 - アドレスファミリー (String)
* 第1要素 - ポート番号 (Integer)
* 第2要素 - ホスト名 (String)
* 第3要素 - アドレス (String)
* 第4要素 - アドレスファミリーに対応する Integer
* 第5要素 - ソケットタイプに......対応する Integer
* 第6要素 - プロトコルに対応する Integer
=== 必須引数について
必須引数の意味は以下の通りです。
* nodename - ホスト名
(lib:socket#host_formatを参照)
* servname - サービス名
(lib:socket#service_formatを参照)
===... -
Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object (148.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...かった場合割り込めません
(resolv-replace を使用する必要があります)。
その処理を Ruby で実装しなおすか C 側で Ruby
のスレッドを意識してあげる必要があります。
以下の例では、gethostbyname(およそ0.6秒処理に時間がかかって......p TCPSocket.gethostbyname("www.ruby-lang.org")
# (A)
}
ensure
p Time.now - start
end
# 実行例
=> ["helium.ruby-lang.org", [], 2, "210.251.121.214"]
0.689331
/usr/local/lib/ruby/1.6/timeout.rb:37: execution expired (TimeoutError)
from -:6:in `timeout'......from -:6
# gethostbyname が0.1秒かからない場合は例外が発生しないので
# その場合は、t に小さい数値(0.000001のような)に変える。
timeout による割り込みは Kernel.#system によって呼び出された外部プログラムを
タイムア... -
Timeout
. # timeout(sec , exception _ class , message) {|i| . . . } -> object (148.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...かった場合割り込めません
(resolv-replace を使用する必要があります)。
その処理を Ruby で実装しなおすか C 側で Ruby
のスレッドを意識してあげる必要があります。
以下の例では、gethostbyname(およそ0.6秒処理に時間がかかって......p TCPSocket.gethostbyname("www.ruby-lang.org")
# (A)
}
ensure
p Time.now - start
end
# 実行例
=> ["helium.ruby-lang.org", [], 2, "210.251.121.214"]
0.689331
/usr/local/lib/ruby/1.6/timeout.rb:37: execution expired (TimeoutError)
from -:6:in `timeout'......from -:6
# gethostbyname が0.1秒かからない場合は例外が発生しないので
# その場合は、t に小さい数値(0.000001のような)に変える。
timeout による割り込みは Kernel.#system によって呼び出された外部プログラムを
タイムア...