首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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的一个实例。
代码语言:javascript
复制
# 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类似。

代码语言:javascript
复制
# 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#关闭。

代码语言:javascript
复制
# File ext/openssl/lib/openssl/ssl.rb, line 394
def close
  @svr.close
end

listen(backlog=5)显示源

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

代码语言:javascript
复制
# File ext/openssl/lib/openssl/ssl.rb, line 363
def listen(backlog=5)
  @svr.listen(backlog)
end

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

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

代码语言:javascript
复制
# File ext/openssl/lib/openssl/ssl.rb, line 368
def shutdown(how=Socket::SHUT_RDWR)
  @svr.shutdown(how)
end

to_io() 显示源

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

代码语言:javascript
复制
# File ext/openssl/lib/openssl/ssl.rb, line 358
def to_io
  @svr
end

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com