[英]Notify client when closing server via socket
我正在创建一个套接字程序。 服务器始终监听客户端请求并发送响应。 当用户在 GUI 中单击按钮时,客户端将向服务器发送请求。
我的问题是当我单击服务器中 GUI 中的关闭按钮时,我想通知客户端服务器已关闭。 我想出了一个想法,即创建与客户端的新连接总是监听服务器,但我认为这是在浪费资源。
server.py
while True:
try:
request = client.recv(BUFSIZE).decode('utf-8')
except ConnectionResetError:
logging.info(str(client.getsockname()) + ' has exited')
break
except Exception as e:
continue
if request:
try:
request = json.loads(request)
response = self.__handle_request(request, client).encode()
client.send(response)
client.py
# when user client button
sock.send(request)
response = sock.recv().decode()
render(response)
当服务器套接字关闭时,会通知客户端套接字。 您的客户端的sock.recv
调用将返回一个长度为零的数据包,这是它这样做的唯一实例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.