【发布时间】:2017-04-03 07:34:29
【问题描述】:
我正在从事套接字编程,我必须跟踪所有加入服务器的客户端。
所以我只是将它们列一个列表:
client = []
并在客户端连接到服务器时将其附加到它。 现在,每当客户端断开连接时,我都必须从列表中删除客户端。 问题是服务器如何知道客户端是否与该服务器断开连接。
对于连接服务器,我正在使用:
s = socket.socket()
s.bind((host, port))
client = []
while True:
c, addr = s.accept()
client.append(addr)
s.close()
【问题讨论】:
-
如果你使用了接受的套接字,你会在写入时得到一个错误,或者在对端关闭它的套接字时读取时读取 0 字节。
-
在 Ux 上,因为(普通)套接字是文件描述符,您可以使用
fcntl(fd, F_GETFD)。