Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > opensslライブラリ > OpenSSL::SSL::SSLServerクラス
class OpenSSL::SSL::SSLServer
クラスの継承リスト: OpenSSL::SSL::SSLServer < OpenSSL::SSL::SocketForwarder < Object < Kernel < BasicObject
Abstract
SSL サーバーのためのクラス。TCPServer に対応します。
以下はクライアントからの入力を出力するだけの echo サーバーの例です。
require 'socket' require 'openssl' include OpenSSL ctx = SSL::SSLContext.new() ctx.cert = X509::Certificate.new(File.read('cert.pem')) ctx.key = PKey::RSA.new(File.read('privkey.pem')) svr = TCPServer.new(2007) serv = SSL::SSLServer.new(svr, ctx) loop do while soc = serv.accept puts soc.read end end
特異メソッド
new(svr, ctx)
-
svr には TCPServer オブジェクトを、ctx には OpenSSL::SSL::SSLContext オブジェクトを取ります。
インスタンスメソッド
accept
-
TLS/SSL クライアントから接続を受け付け、OpenSSL::SSL::SSLSocket オブジェクトを返します。start_immediately が真なら SSLSocket#accept を呼び TLS/SSL ハンドシェイクを実行してから SSLSocket オブジェクトを返します。
addr
-
IPSocket#addr と同様です。
close
-
接続を閉じます。
closed?
-
close していたら true を返します。
do_not_reverse_lookup=(bool)
fcntl(cmd[, arg])
-
IO#fcntl と同様です。
getsockopt(level, optname)
-
BasicSocket#getsockopt と同様です。
listen
-
TCPServer#listen と同様です。
peeraddr
-
IPSocket#peeraddr と同様です。
setsockopt
-
BasicSocket#setsockopt と同様です。
start_immediately
start_immediately=(bool)
-
accept したらすぐに TLS/SSL ハンドシェイクを実行するかどうかを設定します。デフォルトでは true です。
to_io
-
TCPServer オブジェクトを返します。