Yo uso netcat para ejecutar un servidor simple como este:
while true; do nc -l -p 2468 -e ./my_exe; done
De esta manera, cualquiera puede conectarse a mi host en el puerto 2468 y hablar con "my_exe".
Desafortunadamente, si alguien más quiere conectarse durante una sesión abierta, obtendría un error de "Conexión rechazada", porque netcat ya no está escuchando hasta el próximo ciclo "while".
¿Hay alguna manera de hacer que netcat se comporte como un servidor multiproceso, es decir, siempre escuchando las conexiones entrantes? Si no, ¿hay algunas soluciones para esto?
netcat
parallel-processing
etuardu
fuente
fuente
Respuestas:
está utilizando la herramienta incorrecta para la tarea: use algo como ucspi-tcp , especialmente tcpserver :
fuente
Aunque no mencionó el sistema operativo que está utilizando, supondré que es Linux o Unix basado en la sintaxis de su ejemplo de comando de shell.
Si su sistema ejecuta xinetd (o su predecesor inetd ), puede usar ese software para escuchar una conexión en el puerto de su elección y ejecutar un ejecutable para responder. Con xinetd / inetd, tiene la opción de permitir múltiples conexiones concurrentes, cada una servida por una instancia separada de su ejecutable.
fuente
es probable que simplemente realice el proceso en segundo plano (luego no espera un retorno antes de pasar al siguiente ciclo) con un '&' como:
fuente