retorcido sin detectar desconexiones del cliente

¿Alguien tiene experiencia con esto? Tengo una aplicación retorcida. Los clientes se conectan al servidor. Agregué una función para que si un cliente se conecta a un servidor, pero ya hay un cliente desde esa dirección IP en ejecución, desconecta al nuevo cliente.

De vez en cuando, apago una computadora cliente (o VM, para ser precisos) sin apagar manualmente el programa Python. Cuando hago esto, de vez en cuando pero con bastante frecuencia, el servidor no detecta ninguna desconexión. Cuando la computadora vuelve a funcionar e intenta volver a conectarse, el servidor insiste en que ya hay una conexión desde esa IP. La única solución que he encontrado hasta ahora es reiniciar el servidor.

¿Podrían ser extrañas cosas de redes que no tienen la desconexión? Error retorcido?

Estoy 99% seguro de que no es un error con mi código manejar las desconexiones. Mi código está configurado de modo queconnectionLost se llama cada vez que se pierde una conexión, incluida la mayoría de los casos de apagado de una máquina, y registra una cadena que dice lo que se desconectó o arroja una excepción si ocurre algo extraño. Ninguna de estas cosas apareció en el registro.

Respuestas a la pregunta(2)

Su respuesta a la pregunta