import time import select import socket import ssl import threading import os listen_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) listen_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) listen_sock = ssl.wrap_socket(listen_sock, server_side=True, keyfile="tests/unittests/testkey.pem", certfile="tests/unittests/testcert.pem") listen_sock.bind(("", 5000)) listen_sock.listen(10) def client(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock = ssl.wrap_socket(sock, server_side=False, keyfile="tests/unittests/testkey.pem", certfile="tests/unittests/testcert.pem") sock.connect(("localhost", 5000)) sock.setblocking(False) data = b"a"*200000 try: t = time.time() print ("send", sock.write(data), time.time() - t) except ssl.SSLError as exc: print ("ERR", exc) print ("done") time.sleep(1) def server(): s, a = listen_sock.accept() c = 0 while True: c += len(s.recv()) print ("recv", c) thr = threading.Thread(target=server) thr.daemon = True thr.start() client()