種類
- インスタンスメソッド (23)
- 特異メソッド (5)
- 文書 (4)
- クラス (2)
- モジュール (1)
クラス
- BasicSocket (3)
-
Net
:: HTTP (2) -
OpenSSL
:: SSL :: SSLContext (1) -
OpenSSL
:: SSL :: SSLServer (4) -
OpenSSL
:: SSL :: SSLSocket (9) - TCPServer (2)
- UNIXServer (6)
- UNIXSocket (1)
キーワード
- DRbProtocol (1)
- SSLServer (1)
- TCPServer (1)
-
accept
_ nonblock (1) - cert (1)
- cipher (1)
- connect (1)
-
connect
_ nonblock (1) - get (2)
- getpeername (1)
- getsockname (1)
- new (3)
-
peer
_ cert (1) -
peer
_ cert _ chain (1) -
post
_ connection _ check (1) - recvfrom (1)
-
remote
_ address (1) -
ruby 1
. 6 feature (1) -
ruby 1
. 8 . 2 feature (1) -
ruby 1
. 8 . 5 feature (1) -
ruby 1
. 9 feature (1) -
session
_ cache _ stats (1) -
start
_ immediately (1) -
start
_ immediately= (1) - sysaccept (2)
検索結果
先頭5件
-
OpenSSL
:: SSL :: SSLServer # accept -> OpenSSL :: SSL :: SSLSocket (63622.0) -
クライアントからの接続を受け付け、接続した SSLSocket オブジェクトを返します。
クライアントからの接続を受け付け、接続した
SSLSocket オブジェクトを返します。
OpenSSL::SSL::SSLServer#start_immediately が真ならば、
SSLSocket#accept を呼び TLS/SSL ハンドシェイクを実行してから
SSLSocket オブジェクトを返します。 -
OpenSSL
:: SSL :: SSLSocket # accept -> self (63322.0) -
TLS/SSL 通信をサーバモードとして開始し、クライアントからの ハンドシェイク開始を待ち、クライアントとのハンドシェイクを実行します。
TLS/SSL 通信をサーバモードとして開始し、クライアントからの
ハンドシェイク開始を待ち、クライアントとのハンドシェイクを実行します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
@see OpenSSL::SSL::SSLSocket#connect,
OpenSSL::SSL::SSLSocket#accept_nonblock -
UNIXServer
# accept -> UnixSocket (54406.0) -
クライアントからの接続要求を accept(2)で待ち受け、接続した UNIXSocket のインスタンスを返します。
クライアントからの接続要求を accept(2)で待ち受け、接続した
UNIXSocket のインスタンスを返します。
例:
require 'socket'
UNIXServer.open("/tmp/s") {|serv|
c = UNIXSocket.open("/tmp/s")
s = serv.accept
s.write "from server"
c.write "from client"
p c.recv(20) #=> "from server"
p s.recv(20) #=> "from clie... -
TCPServer
# accept -> TCPSocket (54340.0) -
クライアントからの接続要求を受け付け、接続した TCPSocket のインスタンスを返します。
クライアントからの接続要求を受け付け、接続した
TCPSocket のインスタンスを返します。
例:
require 'socket'
TCPServer.open("", 0) {|serv|
c = TCPSocket.new(*serv.addr.values_at(3,1))
s = serv.accept
c.write "foo"
p s.recv(10) #=> "foo"
} -
UNIXServer
. open(path) -> UNIXServer (45325.0) -
path で指定したパス名を用いて接続を受け付けるソケット を作成します。
path で指定したパス名を用いて接続を受け付けるソケット
を作成します。
ブロックを省略すると作成したサーバソケットを返します。
ブロックを渡した場合は、作成したソケットを引数としてそのブロックを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。
@param path 接続を受け付けるパス名文字列
require 'socket'
serv = UNIXServer.new("/tmp/sock")
s = serv.accept
p s.read -
UNIXServer
. open(path) {|sock| . . . } -> object (45325.0) -
path で指定したパス名を用いて接続を受け付けるソケット を作成します。
path で指定したパス名を用いて接続を受け付けるソケット
を作成します。
ブロックを省略すると作成したサーバソケットを返します。
ブロックを渡した場合は、作成したソケットを引数としてそのブロックを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。
@param path 接続を受け付けるパス名文字列
require 'socket'
serv = UNIXServer.new("/tmp/sock")
s = serv.accept
p s.read -
OpenSSL
:: SSL :: SSLSocket # accept _ nonblock -> self (27322.0) -
ノンブロッキング方式で TLS/SSL 通信をサーバモードとして開始し、 クライアントとのハンドシェイクを実行します。
ノンブロッキング方式で
TLS/SSL 通信をサーバモードとして開始し、
クライアントとのハンドシェイクを実行します。
IO が読み込み待ち、もしくは書き込み待ちになった場合は例外を
発生させ、ハンドシェイクを中断します。IO が読み込み/書き込み
可能状態になってからこのメソッドをもう一度呼ぶと
ハンドシェイクを再開します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
(実際は OpenSSL::S... -
UNIXServer
# sysaccept -> Integer (18385.0) -
接続したクライアントのソケットをファイル記述子で返すことを除けば UNIXServer#accept と同じです。
接続したクライアントのソケットをファイル記述子で返すことを除けば
UNIXServer#accept と同じです。
例:
require 'socket'
UNIXServer.open("/tmp/s") {|serv|
c = UNIXSocket.open("/tmp/s")
p serv.sysaccept #=> 6
} -
TCPServer
# sysaccept -> Integer (18367.0) -
接続したクライアントのソケットをファイル記述子で返すことを除けば TCPServer#accept と同じです。
接続したクライアントのソケットをファイル記述子で返すことを除けば
TCPServer#accept と同じです。
例:
require 'socket'
TCPServer.open("", 0) {|serv|
c = TCPSocket.new(*serv.addr.values_at(3,1))
p serv.sysaccept #=> 6
} -
OpenSSL
:: SSL :: SSLServer . new(svr , ctx) -> OpenSSL :: SSL :: SSLServer (9337.0) -
TCPServer オブジェクトをラップする SSLServer オブジェクトを生成します。
TCPServer オブジェクトをラップする SSLServer オブジェクトを生成します。
svr にはラップするTCPServer オブジェクトを、
ctx には SSL サーバが用いる OpenSSL::SSL::SSLContext
オブジェクトを生成します。
OpenSSL::SSL::SSLServer#listen や OpenSSL::SSL::SSLServer#accept
は内部で svr で渡されたオブジェクトの
TCPServer#listen や TCPServer#accept を呼び出します。
@param svr 利用する TCPServer オブジェ... -
OpenSSL
:: SSL :: SSLSocket # cert -> OpenSSL :: X509 :: Certificate | nil (9319.0) -
自分自身を証明する証明書を返します。
自分自身を証明する証明書を返します。
自分自身を証明する証明書を使わなかった場合は nil を返します。
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼んだ
場合も nil を返します。
@see OpenSSL::SSL::SSLContext#cert -
OpenSSL
:: SSL :: SSLSocket # peer _ cert -> OpenSSL :: X509 :: Certificate | nil (9319.0) -
接続相手の証明書オブジェクトを返します。
接続相手の証明書オブジェクトを返します。
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼ぶと nil を返します。
@see OpenSSL::SSL::SSLSocket#peer_cert_chain -
OpenSSL
:: SSL :: SSLSocket # peer _ cert _ chain -> [OpenSSL :: X509 :: Certificate] | nil (9319.0) -
接続相手の証明書チェインを OpenSSL::X509::Certificate オブジェクト の配列で返します。
接続相手の証明書チェインを OpenSSL::X509::Certificate オブジェクト
の配列で返します。
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼ぶと nil を返します。
以下の順の配列を返します。
[接続相手の証明書, 下位CAの証明書,... 中間CAの証明書]
ルート CA の証明書は含まれないことに注意してください。
@see OpenSSL::SSL::SSLSocket#peer_cert -
OpenSSL
:: SSL :: SSLServer # start _ immediately=(bool) (9133.0) -
OpenSSL::SSL::SSLServer#accept で accept したらすぐに TLS/SSL ハンドシェイクを実行するかどうかを設定します。
OpenSSL::SSL::SSLServer#accept で
accept したらすぐに TLS/SSL ハンドシェイクを実行するかどうかを設定します。
これを真に設定した場合は、OpenSSL::SSL::SSLServer#accept で
接続したソケットに対し OpenSSL::SSL::SSLSocket#accept を
呼び、ハンドシェイクを実行します。
デフォルトでは true です。
@param bool 設定する真偽値。
@see OpenSSL::SSL::SSLServer#start_immediately -
OpenSSL
:: SSL :: SSLServer # start _ immediately -> bool (9097.0) -
OpenSSL::SSL::SSLServer#accept で accept したらすぐに TLS/SSL ハンドシェイクを実行するかどうかを返します。
OpenSSL::SSL::SSLServer#accept で
accept したらすぐに TLS/SSL ハンドシェイクを実行するかどうかを返します。
@see OpenSSL::SSL::SSLServer#start_immediately= -
OpenSSL
:: SSL :: SSLContext # session _ cache _ stats -> {Symbol -> Integer} (9055.0) -
セッションキャッシュの内部統計情報をハッシュテーブルで返します。
セッションキャッシュの内部統計情報をハッシュテーブルで返します。
ハッシュテーブルの各キーとその意味は以下の通りです。
* :cache_num 内部キャッシュに保持されているセッションの数
* :connect クライアント側でハンドシェイクした回数
* :connect_good クライアント側でハンドシェイクが成功した回数
* :connect_renegotiate クライアント側で再ネゴシエイトした回数
* :accept サーバ側でハンドシェイクした回数
* :accept_good サーバ側でハンドシェイクが成功した回数
* :accept_ren... -
OpenSSL
:: SSL :: SSLServer (9019.0) -
SSL サーバーのためのクラス。
SSL サーバーのためのクラス。
TCPServer をラップするクラスで、TCPServer で接続した
ソケットを OpenSSL::SSL::SSLSocket でラップする機能を持ちます。
おおよそ TCPServer と同様のメソッドを持ちます。
基本的には SSL サーバを簡単に実装するためのクラスであり、
これを利用せずとも SSL サーバを実装することは可能です。
以下はクライアントからの入力を標準出力に出力するだけのサーバです。
require 'socket'
require 'openssl'
include OpenSSL
ctx =... -
OpenSSL
:: SSL :: SSLSocket # cipher -> [String , String , Integer , Integer] (9019.0) -
現在実際に使われている暗号の情報を配列で返します。
現在実際に使われている暗号の情報を配列で返します。
返される配列の形式は以下の例のように [暗号名, TLS/SSLのバージョン, 鍵長, アルゴリズムで使われる bit 数] となります。
["DES-CBC3-SHA", "TLSv1/SSLv3", 168, 168]
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
で SSL/TLS ハンドシェイクを行う前にこのメソッドを呼ぶと nil を返します。 -
OpenSSL
:: SSL :: SSLSocket # connect -> self (9019.0) -
TLS/SSl 通信をクライアントモードとして開始し、 サーバとのハンドシェイクを実行します。
TLS/SSl 通信をクライアントモードとして開始し、
サーバとのハンドシェイクを実行します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
@see OpenSSL::SSL::SSLSocket#accept,
OpenSSL::SSL::SSLSocket#connect_nonblock -
OpenSSL
:: SSL :: SSLSocket # connect _ nonblock -> self (9019.0) -
ノンブロッキング方式で TLS/SSL 通信をクライアントモードとして開始し、 サーバとのハンドシェイクを実行します。
ノンブロッキング方式で
TLS/SSL 通信をクライアントモードとして開始し、
サーバとのハンドシェイクを実行します。
IO が読み込み待ち、もしくは書き込み待ちになった場合は例外を
発生させ、ハンドシェイクを中断します。IO が読み込み/書き込み
可能状態になってからこのメソッドをもう一度呼ぶと
ハンドシェイクを再開します。
@raise OpenSSL::SSL::SSLError ハンドシェイクに失敗した(VERIFY_PEER で
証明書の検証に失敗した場合や、プロトコル合意に失敗したなど)
場合に発生します
@raise OpenSSL::SSL::S... -
OpenSSL
:: SSL :: SSLSocket # post _ connection _ check(hostname) -> true (9019.0) -
接続後検証を行います。
接続後検証を行います。
検証に成功した場合は true を返し、失敗した場合は例外
OpenSSL::SSL::SSLError を発生させます。
OpenSSL の API では、
OpenSSL::SSL::SSLSocket#connect や OpenSSL::SSL::SSLSocket#accept
での検証は実用的には不完全です。
CA が証明書に署名してそれが失効していないことしか確認しません。
実用上は証明書に記載されている事項を見て、接続先が妥当であるかを確認する
必要があります。通常は接続先ホストの FQDN と証明書に記載されている FQDN が
一致しているか... -
DRb
:: DRbProtocol (271.0) -
drb で使われる通信プロトコルを取り扱うモジュールです。
drb で使われる通信プロトコルを取り扱うモジュールです。
通常ユーザが使うことはないでしょうが、drb の
ための新しい通信手段を定義したい場合には
このモジュールを使う必要があります。
通信手段を定義したクラスを DRb::DRbProtocol.#add_protocol で
drb に登録することで、追加ができます。
デフォルトでは DRbTCPSocket クラスを用い、druby://... という
URI を指定することで TCP/IP で通信します。
通信プロトコルを追加する例としては、
例としては drb/unix で定義している DRb::DRbUNIXSocket ... -
ruby 1
. 6 feature (163.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
ruby 1.6 feature
ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン
になります。
((<stable-snapshot|URL:ftp://ftp.netlab.co.jp/pub/lang/ruby/stable-snapshot.tar.gz>)) は、日々更新される安定版の最新ソースです。
== 1.6.8 (2002-12-24) -> stable-snapshot
: 2003-01-22: errno
EAGAIN と EWOULDBLOCK が同じ値のシステムで、EWOULDBLOCK がなくなっ
ていま... -
ruby 1
. 8 . 2 feature (127.0) -
ruby 1.8.2 feature ruby 1.8.2 での ruby 1.8.1 からの変更点です。
ruby 1.8.2 feature
ruby 1.8.2 での ruby 1.8.1 からの変更点です。
掲載方針
*バグ修正の影響も含めて動作が変わるものを収録する。
*単にバグを直しただけのものは収録しない。
*ライブラリへの単なる定数の追加は収録しない。
以下は各変更点に付けるべきタグです。
*カテゴリ
* [ruby]: ruby インタプリタの変更
* [api]: 拡張ライブラリ API
* [lib]: ライブラリ
*レベル
* [bug]: バグ修正
* [new]: 追加されたクラス/メソッドなど
* [compat]: 変更されたクラス/... -
TCPServer (73.0)
-
TCP/IP ストリーム型接続のサーバ側のソケットのクラスです。
TCP/IP ストリーム型接続のサーバ側のソケットのクラスです。
このクラスによって簡単にソケットを利用したサーバのプログラミングができます。
例えば echo サーバは以下のようになります。
require "socket"
gs = TCPServer.open(0)
socks = [gs]
addr = gs.addr
addr.shift
printf("server is on %s\n", addr.join(":"))
while true
nsock = select(socks)
next if nsock ==... -
ruby 1
. 8 . 5 feature (73.0) -
ruby 1.8.5 feature ruby 1.8.4 から ruby 1.8.5 までの変更点です。
ruby 1.8.5 feature
ruby 1.8.4 から ruby 1.8.5 までの変更点です。
掲載方針
*バグ修正の影響も含めて動作が変わるものを収録する。
*単にバグを直しただけのものは収録しない。
*ライブラリへの単なる定数の追加は収録しない。
以下は各変更点に付けるべきタグです。
記号について(特に重要なものは大文字(主観))
* カテゴリ
* [ruby]: ruby インタプリタの変更
* [api]: 拡張ライブラリ API
* [lib]: ライブラリ
* レベル
* [bug]: バグ修正
* [new]: 追加されたクラス/メソッ... -
BasicSocket
# getpeername -> String (55.0) -
接続の相手先のソケットの情報を取得します。sockaddr 構造体をパッ クした文字列を返します。getpeername(2) を参照してください。
接続の相手先のソケットの情報を取得します。sockaddr 構造体をパッ
クした文字列を返します。getpeername(2) を参照してください。
例:
require 'socket'
serv = TCPServer.open("", 0)
c = TCPSocket.open(*Socket.unpack_sockaddr_in(serv.getsockname).reverse)
s = serv.accept
addr = c.getpeername
p addr #=> "\002\000\267\214\177\000\000\001\... -
BasicSocket
# getsockname -> String (55.0) -
ソケットの情報を取得します。sockaddr 構造体をパックした 文字列を返します。getsockname(2) を参照してください。
ソケットの情報を取得します。sockaddr 構造体をパックした
文字列を返します。getsockname(2) を参照してください。
例:
require 'socket'
serv = TCPServer.open("", 0)
p serv.getsockname #=> "\002\000\236C\000\000\000\000\000\000\000\000\000\000\000\000"
p Socket.unpack_sockaddr_in(serv.getsockname) #=> [40515, "0.0.0.0"]
c ... -
BasicSocket
# remote _ address -> Addrinfo (55.0) -
getpeername(2) で得られたリモートアドレス情報を Addrinfo オブジェクトとして返します。
getpeername(2) で得られたリモートアドレス情報を
Addrinfo オブジェクトとして返します。
返されたオブジェクトの Addrinfo#protocol は 0 を
返すことに注意してください。
require 'socket'
TCPSocket.open("www.ruby-lang.org", 80) {|s|
p s.remote_address #=> #<Addrinfo: 221.186.184.68:80 TCP>
}
TCPServer.open("127.0.0.1", 1728) {|serv|
c = TCP... -
UNIXSocket
# recvfrom(maxlen , flags = 0) -> [String [String , String]] (55.0) -
recvfrom(2) を用いてソケットからメッセージを受け取ります。
recvfrom(2) を用いてソケットからメッセージを受け取ります。
maxlen で受け取るメッセージの最大長をバイト数で指定します。
flags には Socket::MSG_* という名前の定数の bitwise OR を渡します。
戻り値は文字列と相手ソケットのパスのペアです。
例:
require 'socket'
UNIXServer.open("/tmp/s") {|serv|
c = UNIXSocket.open("/tmp/s")
s = serv.accept
s.send "a", 0
p c.recvfrom(10... -
ruby 1
. 9 feature (55.0) -
ruby 1.9 feature ruby version 1.9.0 は開発版です。 以下にあげる機能は将来削除されたり互換性のない仕様変更がなされるかもしれません。 1.9.1 以降は安定版です。 バグ修正がメインになります。
ruby 1.9 feature
ruby version 1.9.0 は開発版です。
以下にあげる機能は将来削除されたり互換性のない仕様変更がなされるかもしれません。
1.9.1 以降は安定版です。
バグ修正がメインになります。
記号について(特に重要なものは大文字(主観))
* カテゴリ
* [ruby]: ruby インタプリタの変更
* [api]: 拡張ライブラリ API
* [lib]: ライブラリ
* [parser]: 文法の変更
* [regexp]: 正規表現の機能拡張
* [marshal]: Marshal ファイルのフォーマット変更
* ... -
Net
:: HTTP # get(path , header = nil , dest = nil) -> Net :: HTTPResponse (37.0) -
サーバ上の path にあるエンティティを取得し、 Net::HTTPResponse のインスタンスとして返します。
サーバ上の path にあるエンティティを取得し、
Net::HTTPResponse のインスタンスとして返します。
header が nil
でなければ、リクエストを送るときにその内容を HTTP ヘッダとして
送ります。 header は { 'Accept' = > '*/*', ... } という
形のハッシュでなければいけません。
ブロックと一緒に呼びだされたときは
エンティティボディを少しずつ文字列として
ブロックに与えます。このとき戻り値の
Net::HTTPResponse オブジェクトは有効な body を
持ちません。
dest は時代遅れの引数です。利用しない... -
Net
:: HTTP # get(path , header = nil , dest = nil) {|body _ segment| . . . . } -> Net :: HTTPResponse (37.0) -
サーバ上の path にあるエンティティを取得し、 Net::HTTPResponse のインスタンスとして返します。
サーバ上の path にあるエンティティを取得し、
Net::HTTPResponse のインスタンスとして返します。
header が nil
でなければ、リクエストを送るときにその内容を HTTP ヘッダとして
送ります。 header は { 'Accept' = > '*/*', ... } という
形のハッシュでなければいけません。
ブロックと一緒に呼びだされたときは
エンティティボディを少しずつ文字列として
ブロックに与えます。このとき戻り値の
Net::HTTPResponse オブジェクトは有効な body を
持ちません。
dest は時代遅れの引数です。利用しない... -
UNIXServer
. new(path) -> UNIXServer (25.0) -
path で指定したパス名を用いて接続を受け付けるソケット を作成します。
path で指定したパス名を用いて接続を受け付けるソケット
を作成します。
ブロックを省略すると作成したサーバソケットを返します。
ブロックを渡した場合は、作成したソケットを引数としてそのブロックを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。
@param path 接続を受け付けるパス名文字列
require 'socket'
serv = UNIXServer.new("/tmp/sock")
s = serv.accept
p s.read -
UNIXServer
. new(path) {|sock| . . . } -> object (25.0) -
path で指定したパス名を用いて接続を受け付けるソケット を作成します。
path で指定したパス名を用いて接続を受け付けるソケット
を作成します。
ブロックを省略すると作成したサーバソケットを返します。
ブロックを渡した場合は、作成したソケットを引数としてそのブロックを呼びだし、
ブロック終了時にソケットを閉じます。この場合には
ブロックの評価値を返り値として返します。
@param path 接続を受け付けるパス名文字列
require 'socket'
serv = UNIXServer.new("/tmp/sock")
s = serv.accept
p s.read