我的应用程序有一个等待连接的服务器,如下所示:
sckt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server = ('', port_server)
sckt.bind(server)
sckt.listen(5)
try:
while True:
new_sckt, client = sckt.accept()
conn = ssl.wrap_socket(new_sckt, server_side=True, ca_certs=certClient, cert_reqs=ssl.CERT_REQUIRED, certfile=certServer, keyfile=keyServer)
_thread.start_new_thread(self.waitUserCommand, tuple([conn, client]))
finally:
conn.close()
客户端通过以下方式连接到服务器:
^{pr2}$在某些客户端连接之后发生故障,并显示以下消息:
Traceback (most recent call last):
File "server.py", line 260, in <module>
server.startServer()
File "server.py", line 90, in startServer
keyfile=keyServer)
File "/usr/local/lib/python3.6/ssl.py", line 1149, in wrap_socket
ciphers=ciphers)
File "/usr/local/lib/python3.6/ssl.py", line 814, in __init__
self.do_handshake()
File "/usr/local/lib/python3.6/ssl.py", line 1068, in do_handshake
self._sslobj.do_handshake()
File "/usr/local/lib/python3.6/ssl.py", line 689, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: HTTP_REQUEST] http request (_ssl.c:777)
值得一提的是,此错误发生在连接结束之后和下一个连接开始之前。i、 例如,客户机离线,服务器只等待一个新的连接(不执行任何操作)。此外,我的应用程序使用了另一个以类似方式工作的服务器,但在我的实验中没有发生任何故障。在
让我们调试一下。在
握手():
错误:
SSL_R_HTTP_REQUEST
:让我们看看
openssl
的来源:HTTP_请求在哪里:
^{pr2}$openssl中发生了什么:
暂定答案
ssl服务器需要一个HTTP响应,但在服务器响应时却没有收到响应?其他要问的问题是什么版本的OpenSSL?Python3.6的具体版本是什么?在
为什么它看不见?公司名称:
也许,没有客户机连接,错误没有在空套接字请求上处理,或者类似的情况?在
相关问题 更多 >
编程相关推荐