Você está recebendo o arquivo incorretamente.
Você deve ouvi-lo com
nc -l -p port > file2
E envie com
cat file1 | nc ip port
Eu envio o arquivo com cat file1 | nc ip-address port
e recebo com nc -l port > file2
e faço o arquivo ser cortado. O tamanho do arquivo recebido é 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
Em outro linux que eu tenho (Loki no VirtualBox dentro do Windows7) esta limitação não está disponível.
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
Eu também usei outro software como um remetente com o mesmo resultado, portanto culpo a parte receptora.
No Wireshark, vejo o sinalizador (FIN, ACK) que faz a conexão fechar, mas não consigo encontrar nenhum motivo para isso.
O que poderia ser um motivo para tal comportamento?
EDITAR: Caso eu use nc -l port > filename
recebo 28M de dados, mas se eu usar nc -l port > filename < /dev/null
, receberei 26K de dados (extraídos desta pergunta: Enviando arquivo via netcat ). Esse comportamento está de alguma forma relacionado?
Você está recebendo o arquivo incorretamente.
Você deve ouvi-lo com
nc -l -p port > file2
E envie com
cat file1 | nc ip port
Tags networking netcat linux tcp