Ruby 2.4
OpenSSL

OpenSSL::SSL::SSLServer

class OpenSSL::SSL::SSLServer

父类:ObjectIncluded modules:OpenSSL::SSL::SocketForwarder

SSLServer表示带有安全套接字层的TCP / IP服务器套接字。

属性

start_immediatelyRW

如果属实,则接受与TCPServer#accept完全相同的作品

公共类方法

new(svr, ctx) 显示源

创建一个SSLServer的新实例。

  • srv 是TCPServer的一个实例。

  • ctx 是OpenSSL :: SSL :: SSLContext的一个实例。

# File ext/openssl/lib/openssl/ssl.rb, line 345 def initialize(svr, ctx) @svr = svr @ctx = ctx unless ctx.session_id_context # see #6137 - session id may not exceed 32 bytes prng = ::Random.new($0.hash) session_id = prng.bytes(16).unpack('H*')[0] @ctx.session_id_context = session_id end @start_immediately = true end

公共实例方法

accept() 显示源

与TCPServer#accept类似。

# File ext/openssl/lib/openssl/ssl.rb, line 373 def accept # Socket#accept returns [socket, addrinfo]. # TCPServer#accept returns a socket. # The following comma strips addrinfo. sock, = @svr.accept begin ssl = OpenSSL::SSL::SSLSocket.new(sock, @ctx) ssl.sync_close = true ssl.accept if @start_immediately ssl rescue Exception => ex if ssl ssl.close else sock.close end raise ex end end

close() 显示源

详情请参阅IO#关闭。

# File ext/openssl/lib/openssl/ssl.rb, line 394 def close @svr.close end

listen(backlog=5)显示源

请参阅TCPServer#以获取详细信息。

# File ext/openssl/lib/openssl/ssl.rb, line 363 def listen(backlog=5) @svr.listen(backlog) end

shutdown(how=Socket::SHUT_RDWR) 显示源

有关详细信息,请参阅BasicSocket#shutdown。

# File ext/openssl/lib/openssl/ssl.rb, line 368 def shutdown(how=Socket::SHUT_RDWR) @svr.shutdown(how) end

to_io() 显示源

初始化时,返回传递给SSLServer的TCPServer。

# File ext/openssl/lib/openssl/ssl.rb, line 358 def to_io @svr end