ライブラリ
- ビルトイン (2)
- openssl (11)
- socket (20)
- timeout (1)
-
webrick
/ https (1)
クラス
- Array (1)
- BasicSocket (4)
-
OpenSSL
:: SSL :: SSLSocket (10) - Socket (2)
-
Socket
:: AncillaryData (1) -
Socket
:: Option (9) - String (1)
- UDPSocket (1)
- UNIXServer (1)
- UNIXSocket (2)
-
WEBrick
:: HTTPRequest (1)
モジュール
- Kernel (1)
-
OpenSSL
:: SSL :: SocketForwarder (1)
キーワード
-
accept
_ nonblock (2) - bool (1)
-
connect
_ nonblock (2) - data (1)
- family (1)
- fcntl (1)
- getsockopt (1)
- int (1)
- level (1)
- linger (1)
- optname (1)
- pack (1)
- parse (1)
-
post
_ connection _ check (1) -
recv
_ io (1) -
recvfrom
_ nonblock (2) - recvmsg (1)
-
send
_ io (1) - sendmsg (1)
- session (1)
- session= (1)
-
session
_ reused? (1) - setsockopt (1)
- sysread (1)
- syswrite (1)
- timeout (1)
-
to
_ io (1) -
to
_ s (1) -
unix
_ rights (1) - unpack (2)
検索結果
先頭5件
-
OpenSSL
:: SSL :: SSLSocket # io -> IO (63616.0) -
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
@see OpenSSL::SSL::SSLSocket.new -
Socket
# connect _ nonblock(server _ sockaddr) -> 0 (63256.0) -
ソケットをノンブロッキングモードに設定した後、 connect(2) を呼び出します。
ソケットをノンブロッキングモードに設定した後、
connect(2) を呼び出します。
引数、返り値は Socket#connect と同じです。
connect が EINPROGRESS エラーを報告した場合、その例外(Errno::EINPROGRESS)
には IO::WaitWritable が Object#extend されます。
これを connect_nonblock をリトライするために使うことができます。
# Pull down Google's web page
require 'socket'
include Socket::Constants
... -
Socket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Addrinfo] (63040.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) を呼び出します。
ソケットをノンブロッキングモードに設定した後、
recvfrom(2) を呼び出します。
引数、返り値は Socket#recvfrom と同じです。
recvfrom(2) がエラーになった場合、
EAGAIN, EINTR を含め例外 Errno::EXXX が発生します。
Errno::EWOULDBLOCK、Errno::EAGAIN のような待ってからリトライすることが
可能であることを意味する例外には、IO::WaitReadable が extend
されています。
@param maxlen ソケットから受けとるデータの最大値
@param flags フラグ
@rai... -
UNIXSocket
# recv _ io(klass=IO , mode=nil) -> Integer|IO|object (28003.0) -
ソケットの接続先からファイルディスクリプタを受け取ります。
ソケットの接続先からファイルディスクリプタを受け取ります。
klass が nil の場合、ファイルディスクリプタが Integer として
返されます。
klass が nil でない場合、
klass.for_fd(fd[, mode]) が呼ばれ、その値が返されます。
例:
require 'socket'
s1, s2 = UNIXSocket.pair
s1.send_io STDOUT
io = s2.recv_io
p File.identical?(io, STDOUT) #=> true
@param klass 受け取ったファイルデ... -
UNIXSocket
# send _ io(io) -> nil (27748.0) -
引数 io に対応するファイルディスクリプタをソケットの接続先に送ります。
引数 io に対応するファイルディスクリプタをソケットの接続先に送ります。
require 'socket'
s1, s2 = UNIXSocket.pair
s1.send_io STDOUT
stdout = s2.recv_io
p STDOUT.fileno #=> 1
p stdout.fileno #=> 6
stdout.puts "hello" # outputs "hello\n" to standard output.
@param io 送るファイルディスクリプタ(整数 or IOオブジェクト) -
OpenSSL
:: SSL :: SSLSocket # to _ io -> IO (27616.0) -
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
SSLSocket オブジェクトを生成する時に渡されたソケットを返します。
@see OpenSSL::SSL::SSLSocket.new -
OpenSSL
:: SSL :: SSLSocket # session -> OpenSSL :: SSL :: Session (27604.0) -
利用している SSL セッションを OpenSSL::SSL::Session オブジェクトで返します。
利用している SSL セッションを OpenSSL::SSL::Session
オブジェクトで返します。
@see OpenSSL::SSL::SSLSocket#session=,
OpenSSL::SSL::SSLSocket#session_reused? -
OpenSSL
:: SSL :: SSLSocket # post _ connection _ check(hostname) -> true (27304.0) -
接続後検証を行います。
接続後検証を行います。
検証に成功した場合は true を返し、失敗した場合は例外
OpenSSL::SSL::SSLError を発生させます。
OpenSSL の API では、
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
での検証は実用的には不完全です。
CA が証明書に署名してそれが失効していないことしか確認しません。
実用上は証明書に記載されている事項を見て、接続先が妥当であるかを確認する
必要があります。通常は接続先ホストの FQDN と証明書に記載されている FQDN が
一致しているか... -
OpenSSL
:: SSL :: SSLSocket # session=(sess) (27304.0) -
ハンドシェイクで再利用する SSL セッションを 設定します。
ハンドシェイクで再利用する SSL セッションを
設定します。
このメソッドはクライアント側でのみ有用です。
セッションを再利用する場合は、
OpenSSL::SSL::SSLSocket#connect を呼ぶ前に
このメソッドでセッションオブジェクト
(OpenSSL::SSL::Session のインスタンス)
を設定します。
サーバ側の場合 OpenSSL::SSL::SSLContext がキャッシュの保持と
管理を行います。
@param sess 設定するセッション
@see OpenSSL::SSL::SSLSocket#session,
OpenSSL::SS... -
OpenSSL
:: SSL :: SSLSocket # session _ reused? -> bool (27304.0) -
利用している SSL セッションが再利用されたものである 場合に真を返します。
利用している SSL セッションが再利用されたものである
場合に真を返します。
@see OpenSSL::SSL::Session,
OpenSSL::SSL::SSLSocket#session,
OpenSSL::SSL::SSLSocket#session= -
Socket
:: Option # linger -> [bool , Integer] (18088.0) -
オプションが SOL_SOCKET/SO_LINGER である場合に、 オプションのデータ(内容)を真偽値と整数のペアとして返します。
オプションが SOL_SOCKET/SO_LINGER である場合に、
オプションのデータ(内容)を真偽値と整数のペアとして返します。
@raise TypeError dataのバイト数が不適切である(sizeof(struct linger)と異なる)場合や、
level/optname が SOL_SOCKET/SO_LINGER でないに発生します
@see Socket::Option#data -
Socket
:: Option # data -> String (18058.0) -
オプションのデータ(内容)を文字列で返します。
オプションのデータ(内容)を文字列で返します。
内容が整数や真偽値、もしくは struct linger であることがわかっている場合には、
Socket::Option#int, Socket::Option#bool, Socket::Option#linger
を用いて
to_s は過去との互換性のために存在します。 -
Socket
:: Option # to _ s -> String (18058.0) -
オプションのデータ(内容)を文字列で返します。
オプションのデータ(内容)を文字列で返します。
内容が整数や真偽値、もしくは struct linger であることがわかっている場合には、
Socket::Option#int, Socket::Option#bool, Socket::Option#linger
を用いて
to_s は過去との互換性のために存在します。 -
Socket
:: Option # bool -> bool (18022.0) -
オプションのデータ(内容)を真偽値に変換して返します。
オプションのデータ(内容)を真偽値に変換して返します。
@raise TypeError dataのバイト数が不適切である(sizeof(int)と異なる)場合に発生します
@see Socket::Option#data -
Socket
:: Option # int -> Integer (18022.0) -
オプションのデータ(内容)を整数に変換して返します。
オプションのデータ(内容)を整数に変換して返します。
@raise TypeError dataのバイト数が不適切である(sizeof(int)と異なる)場合に発生します
@see Socket::Option#data -
Socket
:: Option # family -> Integer (18004.0) -
ソケットファミリを表す整数を返します。
ソケットファミリを表す整数を返します。 -
Socket
:: Option # level -> Integer (18004.0) -
ソケットオプションレベルを表す整数を返します。
ソケットオプションレベルを表す整数を返します。 -
Socket
:: Option # optname -> Integer (18004.0) -
ソケットのオプション名を表す整数を返します。
ソケットのオプション名を表す整数を返します。 -
Socket
:: Option # unpack(template) -> Array (18004.0) -
data に対し String#unpack を呼び出し、その結果を返します。
data に対し String#unpack を呼び出し、その結果を返します。
このメソッドは過去との互換性のために存在します。 -
BasicSocket
# setsockopt(socketoption) -> 0 (9982.0) -
ソケットのオプションを設定します。setsockopt(2) を参照してください。
ソケットのオプションを設定します。setsockopt(2)
を参照してください。
level, optname には Socket::SOL_SOCKET や Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いることができます。
optval には文字列、整数、真偽値(true or false)を渡すことができます。
文字列の場合には setsockopt(2) にはその文字列と
長さが渡されます。整数の場合はintへのポイン... -
BasicSocket
# getsockopt(level , optname) -> Socket :: Option (9871.0) -
ソケットのオプションを取得します。getsockopt(2) を参照してください。 取得したオプションのデータを Socket::Option で返します。
ソケットのオプションを取得します。getsockopt(2)
を参照してください。
取得したオプションのデータを Socket::Option で返します。
level, optname には Socket::SOL_SOCKET や Socket::SO_REUSEADDR
といった整数値の他、文字列("SOL_SOCKET", prefixなしの "SOCKET")や
シンボル(:SO_REUSEADDR, :REUSEADDR)を用いることができます。
@param level getsockopt(2) の 第二引数のlevel
@param optname gets... -
Socket
:: AncillaryData # unix _ rights -> [IO] | nil (9709.0) -
Unix domain socket の SCM_RIGHTS 制御メッセージに含まれる ファイルディスクリプタを IO オブジェクトの配列として返します。
Unix domain socket の SCM_RIGHTS 制御メッセージに含まれる
ファイルディスクリプタを IO オブジェクトの配列として返します。
得られる IO オブジェクトか IO か Socket です。
この配列は Socket::AncillaryData が初期化されたときに
作られます。例えば BasicSocket#recvmsg を :scm_rights => true
オプションを付けて呼びだし、
SCM_RIGHTS な 制御メッセージを受け取ったときに配列が作られます。
適切なオプションを指定しなかった場合は配列は生成されず、
このメソッドは nil... -
BasicSocket
# recvmsg(maxmesglen=nil , flags=0 , maxcontrollen=nil , opts={}) -> [String , Addrinfo , Integer , *Socket :: AncillaryData] (9505.0) -
recvmsg(2) を用いてメッセージを受け取ります。
recvmsg(2) を用いてメッセージを受け取ります。
このメソッドはブロックします。ノンブロッキング方式で通信したい
場合は BasicSocket#recvmsg_nonblock を用います。
maxmesglen, maxcontrollen で受け取るメッセージおよび補助データ
(Socket::AncillaryData)の最大長をバイト単位で指定します。
省略した場合は必要なだけ内部バッファを拡大して
データが切れないようにします。
flags では Socket::MSG_* という名前の定数の biwsise OR を取った
ものを渡します。
opts にはその他... -
BasicSocket
# sendmsg(mesg , flags=0 , dest _ sockaddr=nil , *controls) -> Integer (9202.0) -
sendmsg(2) を用いてメッセージを送ります。
sendmsg(2) を用いてメッセージを送ります。
このメソッドはブロックします。ノンブロッキング方式で通信したい
場合は BasicSocket#sendmsg_nonblock を用います。
ソケットが connection-less の場合は dest_sockaddr で
通信先のアドレスを指定しなければなりません。Socket.sockaddr_in
の返り値や Addrinfo オブジェクトを引数として渡すことができます。
controls には 補助データ(ancillary data)を渡します。
Socket::AncillaryData のインスタンスや
3要素(c... -
UDPSocket
# recvfrom _ nonblock(maxlen , flags=0) -> [String , Array] (9094.0) -
ソケットをノンブロッキングモードに設定した後、 recvfrom(2) でソケットからデータを受け取ります。
ソケットをノンブロッキングモードに設定した後、
recvfrom(2) でソケットからデータを受け取ります。
maxlen で受け取るデータの最大バイト数を指定します。
flags はフラグで、Socket::MSG_* の bitwise OR を渡します。
詳しくは recvfrom(2) を参照してください。
返り値はデータの文字列と送り元のアドレス情報の
2要素の配列となります。
recvfrom(2) がエラーになった場合、
Errno::EAGAIN, Errno::EINTR を含め例外 Errno::EXXX が発生します。
Errno::EWOULDBLOCK、Err... -
OpenSSL
:: SSL :: SSLSocket # accept _ nonblock -> self (9076.0) -
ノンブロッキング方式で TLS/SSL 通信をサーバモードとして開始し、 クライアントとのハンドシェイクを実行します。
ノンブロッキング方式で
TLS/SSL 通信をサーバモードとして開始し、
クライアントとのハンドシェイクを実行します。
IO が読み込み待ち、もしくは書き込み待ちになった場合は例外を
発生させ、ハンドシェイクを中断します。IO が読み込み/書き込み
可能状態になってからこのメソッドをもう一度呼ぶと
ハンドシェイクを再開します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
(実際は OpenSSL::S... -
OpenSSL
:: SSL :: SSLSocket # connect _ nonblock -> self (9076.0) -
ノンブロッキング方式で TLS/SSL 通信をクライアントモードとして開始し、 サーバとのハンドシェイクを実行します。
ノンブロッキング方式で
TLS/SSL 通信をクライアントモードとして開始し、
サーバとのハンドシェイクを実行します。
IO が読み込み待ち、もしくは書き込み待ちになった場合は例外を
発生させ、ハンドシェイクを中断します。IO が読み込み/書き込み
可能状態になってからこのメソッドをもう一度呼ぶと
ハンドシェイクを再開します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
@raise OpenSSL::SSL::S... -
OpenSSL
:: SSL :: SocketForwarder # fcntl(cmd , arg=0) -> Integer (9040.0) -
ラップされているソケットに対してシステムコール fcntl を実行します。
ラップされているソケットに対してシステムコール fcntl を実行します。
IO#fcntl と同様です。
@param cmd IO に対するコマンドを、添付ライブラリ fcntl が提供している定数で指定します。
@param arg cmd に対する引数を整数、文字列、booleanのいずれかで指定します。
@raise Errno::EXXX fcntl の実行に失敗した場合に発生します。
@raise IOError 既に close されている場合に発生します。 -
OpenSSL
:: SSL :: SSLSocket # sysread(length , buf=nil) -> String (9022.0) -
データをバッファを経由せずに暗号化通信路から読み込み、 読み込んだデータを文字列で返します。
データをバッファを経由せずに暗号化通信路から読み込み、
読み込んだデータを文字列で返します。
基本的にはこのメソッドは使わず、OpenSSL::Buffering の
メソッドを使ってデータを読み込むべきです。
length で読み込むバイト数を指定します。
bufに文字列を指定するとその文字列のメモリ領域にデータを直接書き込み、
その String オブジェクトを返します。
IO#sysread と同様です。
@param length 読み込むバイト数を指定します
@param buf データを書き込むバッファ
@raise EOFError 入力が終端に逹した場合に発生します
... -
OpenSSL
:: SSL :: SSLSocket # syswrite(string) -> Integer (9022.0) -
データをバッファを経由せずに暗号化通信路に書き込みます。
データをバッファを経由せずに暗号化通信路に書き込みます。
書き込んだバイト数を整数で返します。
基本的にはこのメソッドは使わず、OpenSSL::Buffering の
メソッドを使ってデータを書き込むべきです。
IO#syswrite と同様です。
@param string 書き込むデータ文字列
@raise OpenSSL::SSL::SSLError 書き込みに失敗した場合に発生します -
UNIXServer
# accept _ nonblock -> UnixSocket (412.0) -
ソケットをノンブロッキングモードに設定した後、 accept(2) を呼び出します。
ソケットをノンブロッキングモードに設定した後、
accept(2) を呼び出します。
接続した
UNIXSocket のインスタンスを返します。
accept(2) がエラーになった場合、Socket#accept と同じ例外が
発生します。
Errno::EWOULDBLOCK, Errno::EAGAIN,
Errno::ECONNABORTED, Errno::EPROTO のいずれかの例外が
発生した場合は、その例外には IO::WaitReadable が extend
されます。それを利用してリトライ可能な例外を掴まえることができます。
require 'socket... -
WEBrick
:: HTTPRequest # parse(socket = nil) -> () (391.0) -
指定された socket からクライアントのリクエストを読み込み、 自身のアクセサなどを適切に設定します。
指定された socket からクライアントのリクエストを読み込み、
自身のアクセサなどを適切に設定します。
@param socket クライアントに接続された IO オブジェクトを指定します。 -
Kernel
# timeout(sec , exception _ class = nil) {|i| . . . . } -> object (322.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
ブロックを sec 秒の期限付きで実行します。
ブロックの実行時間が制限を過ぎたときは例外
Timeout::Error が発生します。
exception_class を指定した場合には Timeout::Error の代わりに
その例外が発生します。
ブロックパラメータ i は sec がはいります。
また sec が 0 もしくは nil のときは制限時間なしで
ブロックを実行します。
@param sec タイムアウトする時間を秒数で指定します.
@param exception_class タイムアウトした時、発生させる例外を指定します.
=== 注意
timeout に... -
Array
# pack(template) -> String (166.0) -
配列の内容を template で指定された文字列にしたがって、 バイナリとしてパックした文字列を返します。
配列の内容を template で指定された文字列にしたがって、
バイナリとしてパックした文字列を返します。
テンプレートは
型指定文字列とその長さ(省略時は1)を並べたものです。長さと
して * が指定された時は「残りのデータ全て」の長さを
表します。型指定文字は以下で述べる pack テンプレート文字列の通りです。
@param template 自身のバイナリとしてパックするためのテンプレートを文字列で指定します。
以下にあげるものは、Array#pack、String#unpack
のテンプレート文字の一覧です。テンプレート文字は後に「長さ」を表す数字
を続けることができま... -
String
# unpack(template) -> Array (166.0) -
Array#pack で生成された文字列を テンプレート文字列 template にしたがってアンパックし、 それらの要素を含む配列を返します。
Array#pack で生成された文字列を
テンプレート文字列 template にしたがってアンパックし、
それらの要素を含む配列を返します。
@param template pack テンプレート文字列
@return オブジェクトの配列
以下にあげるものは、Array#pack、String#unpack
のテンプレート文字の一覧です。テンプレート文字は後に「長さ」を表す数字
を続けることができます。「長さ」の代わりに`*'とすることで「残り全て」
を表すこともできます。
長さの意味はテンプレート文字により異なりますが大抵、
"iiii"
のよう...