Hay un proceso demonio escuchando en el puerto 5144, que no puedo modificar.
Quiero usar netcat para enviar el contenido de un archivo de texto al servidor, pero esto hace netcatque se cuelgue el terminal hasta que presione Ctrl+ C:
cat file.txt | nc -u 127.0.0.1 5144
La única forma en que puedo hacer que funcione es ejecutando nc -u 127.0.0.1 5144y copiando / pegando el contenido del archivo manualmente.
¿Algunas ideas?
También tenga en cuenta:
cat file.txt | ...conducebash: ...: command not foundy puedo seguir usando el terminal- usar
nc -u 127.0.0.1 5144 < file.txtconduce al mismo comportamiento que usar | encima
linux
data-transfer
netcat
Amil
fuente
fuente

cat file.txt | …? ¿Qué talnc -u 127.0.0.1 5144 < file.txt?bash: ...: command not foundy usar "<file.txt" hace lo mismo que | operador (netcat simplemente se cuelga)bash: ...: command not found"? ¿O dice "bash: cat: command not found" o "bash: nc: command not found"? ¿Y luego sale a un indicador de shell o se cuelga? (Os animo a editar la pregunta para añadir estos datos, para que la gente en Australia que apenas están despertando no tienen que leer todos estos comentarios para averiguar cuáles son sus síntomas.)Respuestas:
Si está utilizando la versión GNU de netcat, puede usar el indicador -c para cerrar la conexión en EOF.
Si está utilizando la versión original de la herramienta, puede utilizar el indicador -q.
Un ejemplo para la versión original es:
He agregado "-q 0" a su comando original. Esto cierra la conexión después de que se haya enviado el archivo.
fuente
-l -p <port>para escuchar. La versión de GNU simplemente toma-l <port>.Suponiendo que después de enviar la conexión EOF permanecerá inactiva, puede usar la
-w timeoutopción, que funciona paratimeoutser igual a cero (a diferencia de la-qopción estúpida ...)fuente
Si está transfiriendo de FreeBSD a Windows:
FreeBSD:
cat file.txt | nc -N 10.0.0.5 5144-Napagará el socket de red después de EOFVentanas:
nc -l -p 5144 > output.txt-ldejará de escuchar cuando la conexión esté cerrada (a diferencia-L)fuente