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_immediatelystart_immediately=(bool)-
accept したらすぐに TLS/SSL ハンドシェイクを実行するかどうかを設定します。デフォルトでは true です。
to_io-
TCPServer オブジェクトを返します。