Mi aplicación C# .NET hace actualmente los siguientes (entre otras cosas):zócalo no se cierra después de la aplicación se cierra si un proceso iniciado está abierto
- Crea un hilo que establece una conexión con un puerto específico y espera una instrucción.
- El mensaje entra, el hilo del socket lee el mensaje y genera un evento.
- Un controlador de eventos llama a las funciones necesarias para analizar el mensaje y realiza la acción necesaria, por ejemplo, iniciar una aplicación.
- La "aplicación" externa especificada se inicia de forma asíncrona.
Cuando mis reinicia la aplicación, pero la aplicación externa no se cierra, la toma no parece siempre muy unidos. Luego, cuando trato de iniciar la comunicación en ese puerto de nuevo, aparece un error. Sin embargo, tan pronto como cierro la aplicación externa, puedo abrir un socket en ese puerto.
Parece que mi programa no se cierra correctamente. Debería estar matando el zócalo cuando sale, sin embargo, cuando el proceso externo se está ejecutando ese zócalo nunca se cierra.
¿Alguna idea?
¿Está desechando el zócalo? –
¿Cómo está ejecutando el proceso externo? Por favor publique un código – zmbq
@ M.Babcock Sí, estoy cerrando el socket y he verificado que el código se está ejecutando cuando se cierra la IU. Estoy usando un TcpClient y un TcpListener. El cliente está siendo "cerrado" y el oyente está siendo "detenido". Sin embargo, esto no parece liberar el puerto. – JSideris