簡體   English   中英

通過套接字關閉服務器時通知客戶端

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM