import socket import select import ssl context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) context.load_cert_chain(certfile="keys/server.pem", keyfile="keys/server.key") context.check_hostname = False server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind(('127.0.0.1', 8001)) server.listen(5) input = [server] running = 1 while running: inputready,outputready,exceptready = select.select(input,[],[]) for s in inputready: if s == server: # handle the server socket writeable_sock, address = server.accept() ssl_sock = context.wrap_socket(writeable_sock, server_side=True) input.append(ssl_sock) else: # handle all other sockets data = s.recv(1024) if data: s.send(data) else: s.close() input.remove(s) server.close()