2010-11-26 16 views
9

Estoy buscando un comando bash simple para abrir un socket de cliente, leer todo desde el socket, y luego cerrar el socket. Algo así como wget o curl para enchufes.comando bash para leer desde el socket de red?

¿Hay un comando en Bash para hacer esto? ¿Debo escribir un script bash?

Respuesta

3

Utilice nc. Es rápido y fácil. Para conectarse a 192.168.0.2 cliente en el puerto 999, envíe una solicitud para un recurso, y guardar ese recurso en el disco, haga lo siguiente:

echo "GET /files/a_file.mp3 HTTP/1.0" | nc -w 5 192.168.0.2 999 > /tmp/the_file.mp3

Interruptor -w 5 estados que nc esperará 5 segundos como máximo para una respuesta. Cuando nc finaliza la descarga, el socket se cierra.

Si desea enviar una solicitud más compleja, puede utilizar gedit o algún otro editor de texto para escribir, guardarlo en el archivo "reqest", y luego gato que presentar a través de la tubería de Carolina del Norte:

cat request.txt | nc -w 5 192.168.0.2 999 > /tmp/the_file.mp3

No necesita escribir un script para esto, porque es un comando de una línea ... ¡Pero si lo usa a menudo, escribir un script es obligatorio!

Espero que haya ayudado. :)

1

El ya mencionado netcat (nc) es simple y potente. Pero si necesita una herramienta aún más poderosa: socat.

Cuestiones relacionadas