无法找出是什么原因导致python中的错误文件描述符错误

时间:2020-09-24 19:59:46

标签: python-3.x ssl server openssl

我正在尝试使用一个简单的服务器来接收/发送消息,但是遇到了一个我无法解决的问题。在添加线程之前,它工作正常,因此我认为问题出在线程上,但不确定在哪里/为什么。

NeverConnect

错误是import socket import ssl import threading cert = 'server.crt' key = 'server.key' HOST = '' PORT = 8444 ADDR = (HOST, PORT) bind_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) bind_socket.bind(ADDR) context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) context.load_cert_chain(cert, key) def get_secrets(): d = "my_data" return d.encode('utf-8') def handle_client(new_socket, from_addr): while True: try: secure_socket = None secure_socket = context.wrap_socket(new_socket, server_side=True) msg = secure_socket.read().decode('utf-8') print(f"[SERVER] Message received {msg}") if msg.startswith('[001]'): print(f'Received Message') d = get_secrets() secure_socket.send(d) else: secure_socket.send(b'I hear you!') except KeyboardInterrupt: print() break finally: if secure_socket: secure_socket.close() bind_socket.close() def begin(): bind_socket.listen(5) print(f"[LISTENING] Server is listening on {HOST} port {PORT}") while True: secure_socket = None new_socket, from_addr = bind_socket.accept() thread = threading.Thread(target=handle_client, args=(new_socket, from_addr)) thread.start() print(f"f[ACTIVE CONNECTIONS] {threading.activeCount() - 2}") if __name__ == '__main__': begin() ,如果我删除线程,那么它可以工作,但是我需要使用线程来支持多个连接。

0 个答案:

没有答案