[英]Check if a Client is Still Connected - Python Socket Programming using UDP
我目前正在使用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和端口。 在上面的代码中,我正在测试是否将空白消息发送到客户端,并且它不会引发错误,那么它仍然保持连接状态。 不幸的是,即使客户端不再运行,该代码也不起作用,该代码也不会引发异常。 请帮我解决我的问题。 谢谢。
UDP没有“连接”的概念,因此您必须在应用程序层实现该逻辑。 例如,让每个客户端每隔几秒钟向服务器发送一个“嗨,我还在这里”数据包。 如果服务器发现经过了(更多时间)秒而没有收到来自给定客户端的任何数据包,则服务器可以认为客户端已消失。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.