gpt4 book ai didi

python - 如何知道客户端断开套接字中的服务器

转载 作者:行者123 更新时间:2023-12-03 12:03:55 26 4
gpt4 key购买 nike

我正在进行套接字编程,并且必须跟踪所有加入服务器的客户端。

所以我只是给他们一个 list :

client = []

并在客户端连接到服务器时将客户端附加到该客户端。
现在,每当客户端断开连接时,我都必须从列表中删除该客户端。
问题在于服务器如何知道客户端是否已从该服务器断开连接。

为了连接服务器,我正在使用:
s = socket.socket()
s.bind((host, port))
client = []
while True:
c, addr = s.accept()
client.append(addr)
s.close()

最佳答案

通常,当套接字断开连接时,如果写入套接字,它将引发socket.error,并且在读取套接字时也将返回b""

因此,您可以做的是,可以捕获该异常并在写入时删除客户端,如果从中读取则检查数据是否为空。

顺便说一句,您需要使用套接字作为客户端,而不是其地址。

像这样:

try:
sock.send(data)
except socket.error:
client.remove(sock)

data = sock.receive(1024)
if not data:
sock.close()
client.remove(sock)

关于python - 如何知道客户端断开套接字中的服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43178999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com