在_ssl.sslwrap文件函数将检查传入的sock是否是的子类_插座.插座. 我传入了一个实现_插座.插座. 在
因为我的socket不是一个子类,所以很生气。这是我应该自己解决的问题,还是应该向python开发人员询问这个问题?在
这是来自ssl.SSLSocket.这让我感到悲伤:
self._sslobj = _ssl.sslwrap(self._sock, server_side,
keyfile, certfile,
cert_reqs, ssl_version, ca_certs,
ciphers)
在我的例子中,self.\u sock是我的自定义套接字类的一个实例。在
更新:
我要调查一下twisted是如何做这些事情的。我的假插座太复杂了。但是,我仍然很好奇为什么\u ssl模块以这种方式强制使用套接字类型。在
我同意显式地强制执行类型层次结构似乎不是python式的,您可能需要询问开发人员这方面的问题。在
哦,我想知道这是否与作为ssl和socket的实现模块有关。我没有使用过ssl,也几乎没有使用过socket,但是在使用它们直接使用\u ssl或\u socket时,是否确实有必要?在
无论如何,在此期间,一种解决方法可能是代理对象:
(a)从}),但是
_socket.socket
继承(因此声明它isinstance
属于{(b)将其所有消息传递到实际的“套接字接口”兼容对象。在
我还没有测试过这段代码,所以我希望这不是一个不光彩的贡献:
其他的Python是怎么想的?这是个好主意吗?在
相关问题 更多 >
编程相关推荐