2012-09-04 10 views
6

estoy emitiendo el comando:¿Cómo enviar un archivo usando netcat y luego mantener viva la conexión?

netcat serveraddress myport < MY_FILE 

Lo que pasa es que netcat envía un mensaje al cerrar la conexión una vez que se envía el archivo. Necesito escribir mensajes desde la consola después de enviar ese archivo. Recuerdo haber hecho algo para pipileline a stdin ... ¿era esto?

netcat serveraddress myport < MY_FILE | 

Eso no está funcionando ahora.

Estoy en Unix.

Información adicional: Esta no asumió el control en el lado del servidor (por ejemplo, uso netcat en serverside para escuchar la conexión de entrada)

Respuesta

10

Tal vez que estaba haciendo:

cat MY_FILE - | ncat ... 

(Tenga en cuenta que no tengo mispelled intencionadamente netcat, porque creo que es un programa ncat superiores)

+0

Gracias, eso fue todo. Una gran ventaja sería si puede agregar un poco de información sobre por qué funciona, o alguna referencia. (¿Qué es eso "-"?) – quinestor

+1

El '-' le dice a cat que lea stdin. Primero lee (y escribe) 'MY_FILE', luego lee stdin. Si stdin es un tty, simplemente bloquea la entrada desde el teclado. –

7
lado

servidor:.

nc -k -l 10000 < my_in_file 
lado

Cliente:

echo "bye" | netcat 192.168.1.6 10000 > my_in_file - 
+1

Gracias.Sin embargo, esto no funcionó ya que el servidor no usa nc, lo que William propuso fue. – quinestor

6

para mantener la escucha de otras conexiones utilizan -k en Carolina del Norte.

supongamos que desea establecer una conexión con el servidor, escribir en el archivo del servidor e imprimir en stdout?

Servidor: nc -k -l $ PORT | camiseta archivo (o> archivo sin impresión en stdout)

cliente nc $ IP $ PUERTO < file_to_send

3

Puede utilizar la opción -q -1 de Carolina del Norte:

echo MY_FILE | nc -q -1 192.168.0.1 9000 

De esta manera se también funcionará si el comando se ejecuta en segundo plano.

1

Soy consciente de que el hilo es muy antiguo, pero el PO y usos de Unix, como referencia aquí es un Windows equivalente al "gato ARCHIVO - | NCAT HOST":

type FILE con | ncat HOST 

A continuación, pulse Ctrl-Z o CTRL C para finalizar la conexión.

Notas

Cuestiones relacionadas