Udp 如何处理断开连接的客户端地址?

Udp 如何处理断开连接的客户端地址?,udp,python-asyncio,Udp,Python Asyncio,我使用文档中的模板实现了一个UDP服务器,可以在以下位置找到: 我想知道失去连接的客户的地址。connection_lost回调只有一个参数exc表示异常 编辑:在否决票之后,我想强调的是,在datagram ServerProtocol类“connection\u Maked”中命名回调的模块中,这不是一个非常noob友好的部分。Python API设计人员需要正确地记录这一点 当您创建套接字并将其连接时,似乎会调用connection\u made() 要了解所有这些,首先需要了解conne

我使用文档中的模板实现了一个UDP服务器,可以在以下位置找到:

我想知道失去连接的客户的地址。connection_lost回调只有一个参数exc表示异常


编辑:在否决票之后,我想强调的是,在datagram ServerProtocol类“
connection\u Maked
”中命名回调的模块中,这不是一个非常noob友好的部分。

Python API设计人员需要正确地记录这一点

当您创建套接字并将其连接时,似乎会调用
connection\u made()

要了解所有这些,首先需要了解
connect()
在Berkeley Sockets API级别对UDP套接字所做的操作:

  • 它对套接字进行调节,以便可以使用
    write()和
    send()
    以及
    sendto()`,这两者都将只发送到连接的目标地址
  • 它使套接字过滤掉所有并非源自连接目标的数据报
  • 它不会创建任何类型的接线。对等方未接收任何信息,也未以任何方式通过线路发送任何信息
  • 您可以多次将UDP套接字连接到不同的地址或null,从而完全撤消(1)和(2)
  • 因此,我只能想象当(4)发生时调用
    connection\u lost()
    回调,而这不在代码中


    不管它做什么,如果有的话,它肯定不能用来检测客户端何时断开连接,因为UDP中没有这样的事件。

    UDP中没有连接这样的事情,所以也不会有连接丢失事件。请原谅,为什么会有一个名为“connection\u Make”的回调?我同意你编辑中的评论。不是。注意:我不是一个Python爱好者,也没有测试过这方面的任何东西。我在这里是根据第一原则推理的。
    连接
    无论是否在C套接字API级别调用
    connect()
    。(如果未提供
    remote\u addr
    ,则该构造函数中的
    地址将为None。)这可能是因为
    连接是异步“协议”连接到“传输”的方式<代码>连接\u丢失
    显然是在传输时调用的。