socket服务端在接收socket客户端时抛出异常
ConnectionAbortedError: [WinError 10053] 您的主机中的软件中止了一个已建立的连接。
socket服务端代码
#-*- coding:utf-8 -*- # Author: Jiang Zu Xing import socket,time socketserver=socket.socket() host="0.0.0.0" port=9999 socketserver.bind((host,port)) socketserver.listen(5) while True: client,addr=socketserver.accept() print("连接来自:",addr) msg="显示服务器返回数据" while True: print("准备接收数据") data = client.recv(1024) print("接收数据完毕") if data ==0: print("no data") break else: print(data.decode(‘utf-8‘)) client.send(msg.encode()) client.close() socketserver.close()
socket客户端代码
#-*- coding:utf-8 -*- # Author: Jiang Zu Xing import socket,time socket_client=socket.socket() host="192.168.1.35" port=9999 data="222" socket_client.connect((host,port)) print("开始发送") socket_client.send(data.encode()) print("开始接收") msg=socket_client.recv(1024) print("接收结束") print(msg.decode(‘utf-8‘)) time.sleep(100)
异常
Traceback (most recent call last): File "C:/Users/Administrator/Desktop/jiang/python/demo/网络编程/socket_server.py", line 15, in <module> data = client.recv(1024) ConnectionAbortedError: [WinError 10053] 您的主机中的软件中止了一个已建立的连接。
出现问题:
刚刚学习socket写的练手脚本
服务器端Receive数据时,关闭了客户端就会强制关闭连接,就会出现上面的错误提示。
建议:
在接收完数据后退出死循环,不要让recv()函数阻塞住,关闭客户端(文件发送端)前建议发送一个消息告诉服务器端(文件接收方)“我要断开连接了”,然后两方都关闭连接close
原文地址:http://www.cnblogs.com/zuxing/p/7687401.html
时间: 2024-10-29 19:07:44