我有一个使用文档中的模板实现的UDP服务器,可在此处找到:https://docs.python.org/3/library/asyncio-protocol.html#udp-echo-server-protocol
我想知道丢失连接的客户端的地址。 connection_lost 回调只有一个参数, exc 表示异常。
编辑:在downvotes之后,我想强调一下,它不是模块中非常友好的部分,在数据报ServerProtocol类“connection_made
”中命名回调。
答案 0 :(得分:0)
Python API设计人员需要正确记录这一点。
当你创建套接字并连接它,which in turn only happens if you specify a non-None
Remote_addr
时,看起来会调用connection_made()
。
要理解所有这些,首先您需要了解connect()
对Berkeley套接字API级别的UDP套接字的作用:
write() and
发送()can be used as well as
sendto()`,这两者都只发送到连接的目标地址。connect()
一个UDP套接字,可以是另一个地址,也可以是null,这完全取消了(1)和(2)。所以,我只能想象当(4)发生时调用connection_lost()
回调,它不在你的代码中。
无论它做什么,如果有的话,它肯定不能用于检测客户端何时断开连接,因为UDP中没有这样的事件。