[英]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.