Разработчики Python API должны правильно документировать это.
Похоже, connection_made()
вызывается, когда вы создаете сокет и подключаете его , , что в свою очередь происходит толькоесли вы укажете не None
Remote_addr
.
Чтобы понять все это, сначала вам нужно понять, что connect()
делает с сокетом UDP на уровне API сокетов Беркли:
- Условие сокета так, что
write() and
send () can be used as well as
sendto () `, оба из которых будут отправлять только на подключенный целевой адрес. - Условие сокетаотфильтровывать все дейтаграммы, которые не были получены от цели соединения.
- Это не создает проводное соединение любого вида.Ничто не принимается одноранговым узлом и не отправляется по проводам каким-либо образом.
- Вы можете
connect()
сокет UDP несколько раз, либо на другой адрес, либо на ноль, что полностью отменяет (1) и (2).).
Итак, я могу только представить, что обратный вызов connection_lost()
вызывается, когда (4) происходит, чего нет в вашем коде.
Что бы это ни делало,во всяком случае, он, безусловно, не может быть использован для обнаружения, когда клиент отключается, поскольку в UDP такого события нет.