Envío el archivo con cat file1 | nc ip-address port
y lo recibo con nc -l port > file2
y obtengo el archivo cortado. El tamaño del archivo recibido es de 28467200 bytes (aprox. 28M) de aprox. 150M.
uname -a
Linux MyName 3.13.0-107-generic #154-Ubuntu SMP Tue Dec 20 09:57:27 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
En otros linux que tengo (Loki en VirtualBox dentro de Windows7) esta limitación no está disponible.
uname -a
Linux Loki-VirtualBox 4.4.0-57-generic #78-Ubuntu SMP Fri Dec 9 23:50:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
También utilicé otro software como parte de envío con el mismo resultado, por lo tanto, culpo a la parte receptora.
En Wireshark veo la bandera (FIN, ACK) que cierra la conexión, pero no puedo encontrar ninguna razón para ello.
¿Cuál podría ser una razón para tal comportamiento?
EDITAR: en caso de que lo use nc -l port > filename
, recibo 28 millones de datos, pero si lo uso nc -l port > filename < /dev/null
, recibo 26K de datos (tomado de esta pregunta: envío de archivos a través de netcat ). ¿Está este comportamiento relacionado de alguna manera?
fuente
stderr
en cada extremo y ver si hay algo en los registros de errores. Además, intente la transferencia con el remitente y el receptor en la máquina local, utilizando127.0.0.1
como IP del remitente. Por cierto, nunca usecat file | program ...
, siempre use el mucho más eficienteprogram <file ...
.stderr
mensajes. Cuando dice que usarlocalhost
no hace ninguna diferencia, ¿quiere decir que se produce el mismo error? En ambos sistemas? ¿Has intentado enviar un archivo de tamaño similar de la otra manera?Respuestas:
Estás recibiendo el archivo incorrectamente.
Deberías escucharlo con
Y envíalo con
fuente