客户端:
data = b'\xff' * 1000000
ssock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
#context is created by ssl.create_default_context(ssl.Purpose.SERVER_AUTH)
ssock = context.wrap_socket(ssock, server_hostname='xd1337sv')
ssock.connect((SERVERADDR, SERVERPORT))
ssock.sendall(data)
#time.sleep(3)
ssock.close()
如果我只是使用普通的非SSL套接字,那么在服务器接收到确切数量的数据时,一切正常。如果我使用TLS套接字,则行为取决于版本。
如果我在Python 3.6上运行服务器或客户端,因此将使用TLSv1.2,那么就没有问题。
仅当使用TLSv1.3并取决于
data
客户多久
ssocket.close()
行被执行。
如果我把适量的
time.sleep
之前
ssocket.close()
根据数据的大小,我不会出错。否则,服务器将获得
ConnectionResetError [WinError 10054] An existing connection was forcibly closed by the remote host
只接收部分数据,或者抛出
ConnectionAbortedError [WinError 10053] An established connection was aborted by the software in your host machine
没有收到任何数据。
我正在本地计算机上用本地地址测试服务器和客户端
192.168.1.2
.