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)

BasicSocket#do_not_reverse_lookup と同様です。

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 オブジェクトを返します。

Methods

Classes