python - 为什么 SSLSocket,套接字的子类型,缺少 create_connection 方法?

标签 python sockets ssl python-2.6

python documentation状态:

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'

最佳答案

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

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

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

1当文档说“套接字”时,它们指的是在函数中创建的套接字,即使他们从未套接字是已创建。

关于python - 为什么 SSLSocket,套接字的子类型,缺少 create_connection 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24606926/

相关文章:

Python 管道从网络套接字接收到 tcp/udp pcm 数据到子进程(aplay)

java - 套接字始终打开还是仅在需要时打开?

ssl - nginx多一个ssl配置

python - 系列对象没有属性 'strip'

multithreading - 在 Haskell 中使用共享套接字的多线程

Git LFS 和 HTTP 客户端身份验证

tomcat - 仅对某些特定资源请求客户端证书身份验证

python - scrapy:避免循环重新爬行

python - 如何推断 pandas 数据框中的类型

python - 谷歌应用程序引擎python发送电子邮件超时