繁体   English   中英

检查客户端是否仍然连接-使用UDP的Python套接字编程

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM