Netcat 仅接收文件的一部分

Netcat 仅接收文件的一部分

我用 发送文件,cat file1 | nc ip-address port用 接收文件,nc -l port > file2然后剪切文件。接收文件的大小为 28467200 字节(约 28M),总大小约为 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

在我拥有的其他 Linux 上(Windows7 中的 VirtualBox 中的 Loki),此限制不存在。

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

我也使用其他软件作为发送方,结果也一样,因此我认为责任在接收方。

在 Wireshark 中,我看到导致连接关闭的 (FIN, ACK) 标志,但我找不到任何原因。

造成这种行为的原因是什么?

编辑: 如果我使用,nc -l port > filename我会收到 28M 的数据,但是如果我使用nc -l port > filename < /dev/null,我会收到 26K 的数据(取自这个问题:通过 netcat 发送文件)。这种行为是否与此有某种关联?

答案1

您接收的文件有误。

你应该用

nc -l -p port > file2

并发送

cat file1 | nc ip port

相关内容