Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > socketライブラリ > Socket::Optionクラス

class Socket::Option

クラスの継承リスト: Socket::Option < Object < Kernel < BasicObject

要約

BasicSocket#getsockoptBasicSocket#setsockopt で 使うソケットオプションの値を表すクラス。

ソケットオプションの具体的な意味は 自身の使っているシステムのドキュメントを見てください。

目次

特異メソッド
bool int linger new
インスタンスメソッド
bool data to_s family int level linger optname unpack

特異メソッド

bool(family, level, optname, boolean) -> Socket::Option[permalink][rdoc]

整数をデータとして持つ Socket::Option オブジェクト新たに生成し返します。

family, level, optname には Socket::SOL_SOCKET のような整数の他、 文字列("SOL_SOCKET", "SOCKET")、シンボル(:SOL_SOCKET, :SOCKET)を 指定することができます。

[PARAM] family:
ソケットファミリー
[PARAM] level:
ソケットオプションレベル
[PARAM] optname:
オプションの名前
[PARAM] boolean:
データ(真偽値)
require 'socket'

p Socket::Option.bool(:INET, :SOCKET, :KEEPALIVE, true)
# => #<Socket::Option: INET SOCKET KEEPALIVE 1>

p Socket::Option.bool(:INET, :SOCKET, :KEEPALIVE, false)
# => #<Socket::Option: AF_INET SOCKET KEEPALIVE 0>
int(family, level, optname, integer) -> Socket::Option[permalink][rdoc]

整数をデータとして持つ Socket::Option オブジェクト新たに生成し返します。

family, level, optname には Socket::SOL_SOCKET のような整数の他、 文字列("SOL_SOCKET", "SOCKET")、シンボル(:SOL_SOCKET, :SOCKET)を 指定することができます。

[PARAM] family:
ソケットファミリー
[PARAM] level:
ソケットオプションレベル
[PARAM] optname:
オプションの名前
[PARAM] integer:
データ(整数)
linger(onoff, secs) -> Socket::Option[permalink][rdoc]

SOL_SOCKET/SO_LINGER 用の Socket::Option オブジェクト を新たに生成し返します。

[PARAM] onoff:
0/1もしくは真偽値
[PARAM] secs:
整数値
new(family, level, optname, data) -> Socket::Option[permalink][rdoc]

Socket::Option オブジェクト新たに生成し返します。

family, level, optname には Socket::SOL_SOCKET のような整数の他、 文字列("SOL_SOCKET", "SOCKET")、シンボル(:SOL_SOCKET, :SOCKET)を 指定することができます。

[PARAM] family:
ソケットファミリー
[PARAM] level:
ソケットオプションレベル
[PARAM] optname:
オプションの名前
[PARAM] data:
データ(文字列)

[SEE_ALSO] Socket::Option.int, Socket::Option.bool, Socket::Option.linger

require 'socket'

sockopt = Socket::Option.new(:INET, :SOCKET, :KEEPALIVE, [1].pack("i"))
p sockopt #=> #<Socket::Option: INET SOCKET KEEPALIVE 1>

インスタンスメソッド

bool -> bool[permalink][rdoc]

オプションのデータ(内容)を真偽値に変換して返します。

[EXCEPTION] TypeError:
dataのバイト数が不適切である(sizeof(int)と異なる)場合に発生します

[SEE_ALSO] Socket::Option#data

data -> String[permalink][rdoc]
to_s -> String

オプションのデータ(内容)を文字列で返します。

内容が整数や真偽値、もしくは struct linger であることがわかっている場合には、 Socket::Option#int, Socket::Option#bool, Socket::Option#linger を用いて

to_s は過去との互換性のために存在します。

family -> Integer[permalink][rdoc]

ソケットファミリを表す整数を返します。

int -> Integer[permalink][rdoc]

オプションのデータ(内容)を整数に変換して返します。

[EXCEPTION] TypeError:
dataのバイト数が不適切である(sizeof(int)と異なる)場合に発生します

[SEE_ALSO] Socket::Option#data

level -> Integer[permalink][rdoc]

ソケットオプションレベルを表す整数を返します。

linger -> [bool, Integer][permalink][rdoc]

オプションが SOL_SOCKET/SO_LINGER である場合に、 オプションのデータ(内容)を真偽値と整数のペアとして返します。

[EXCEPTION] TypeError:
dataのバイト数が不適切である(sizeof(struct linger)と異なる)場合や、 level/optname が SOL_SOCKET/SO_LINGER でないに発生します

[SEE_ALSO] Socket::Option#data

optname -> Integer[permalink][rdoc]

ソケットのオプション名を表す整数を返します。

unpack(template) -> Array[permalink][rdoc]

data に対し String#unpack を呼び出し、その結果を返します。

このメソッドは過去との互換性のために存在します。