【发布时间】:2018-10-13 13:21:01
【问题描述】:
我目前正在使用 UDP 开发一个聊天应用程序。我如何判断客户端是否仍连接到我的服务器或仍在运行?以下是我的代码:
for i, addr in enumerate(self.all_addresses):
try:
self.socket.sendto(str.encode(''), ('<broadcast>', int(addr[1])))
except e:
del self.all_addresses[i]
continue
self.all_addresses 包含绑定到服务器的客户端的 ip 和端口。在上面的代码中,我正在测试如果我向客户端发送空白消息并且它没有抛出错误,那么它是否意味着它仍然连接。不幸的是,代码不起作用,即使客户端不再运行,代码也不会抛出异常。请帮我解决我的问题。谢谢。
【问题讨论】:
-
afaik UPD 是一个“将消息扔进大海”,所有想要阅读它的人都将它的副本取出 - 如果您可以强制客户回复消息,您可以做某种“生命节拍” -request" ... 维护您连接的客户端列表。
标签: python python-3.x sockets udp serversocket