为什么SSLSocket,socket的子类型,缺少create\u连接方法?

2024-06-01 03:24:35 发布

您现在位置:Python中文网/ 问答频道 /正文

Pythondocumentation状态:

ssl.wrap_socket(sock, keyfile=None, certfile=None, server_side=False, cert_reqs=CERT_NONE, ssl_version={see docs}, ca_certs=None, do_handshake_on_connect=True, suppress_ragged_eofs=True) Takes an instance sock of socket.socket, and returns an instance of ssl.SSLSocket, a subtype of socket.socket, which wraps the underlying socket in an SSL context.

但是当我尝试使用SSL套接字的create_connection方法时,我收到一个:

ssl_sock.create_connection(('www.google.com', 443))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'SSLSocket' object has no attribute 'create_connection'

Tags: ofinstanceinnoneantruessl状态
1条回答
网友
1楼 · 发布于 2024-06-01 03:24:35

create_connection()socket模块中的一个函数,它创建一个新的套接字,连接它,然后返回它1。套接字对象的方法是^{},它接受与create_connection()相同的地址元组:

ssl_socket.connect(("...", 443))

不幸的是,在socket模块的文档中,很容易混淆它们。你需要检查你在页面的哪个部分。套接字对象上的方法只在Socket Objects部分中找到,方法的前缀是“socket.”,意思是“一个socket.socket类型的方法”,这与模块中其他函数的“socket.”前缀相同,其中它的意思是“socket模块的函数”。在

1当文档说“socket”时,它们是指在函数中创建的套接字,即使它们从来没有创建了套接字。在

相关问题 更多 >