class Socket::Option

要約

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

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

目次

特異メソッド
インスタンスメソッド

特異メソッド

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 を呼び出し、その結果を返します。

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