7-zip的标准输入输出(STDIN,STDOUT)与Ncat的配合使用,压缩后传输文件

本文适用于Windows系统。

Netcat/Ncat是很好用的网络工具,使用方法网上已经有很多文章讲解了,不再赘述。本文讲述用7-zip配合Ncat,实现从A机器到B机器的文件压缩传输。
也就是说,准备发送的文件先在A机器上压缩,再把压缩之后的数据传送到B机器,在B机器实时解压缩,整个的传输过程对用户来说是透明的。因为流量减小了,网传速度可能得以加快。
之所以说“可能”,是因为压缩后传输速度是否得以加快,取决于CPU速度与网络速度之比。如果CPU慢而网速快,那还不如不压缩。
如果出现这种情况,就当本文是一片纯技术探讨文把。
希望你能在这次短暂的旅行中获得乐趣。

有2种方法压缩之后传输:
方法1:用7za压缩/解压:
发送端:tar -cv *.txt|7za a -tgzip -an -so -si|ncat 192.168.1.2 --send-only
接收端:ncat -l|7za x -tgzip -bd -y -si -so|tar -xvf - -C /tmp
命令行解释:
7-zip的命令行版本(7z.exe,7za.exe)支持标准输入(STDIN)和标准输出(STDOUT),也就是命令行参数里的 -si 和 -so。
发送端用tar把所有的txt文件一个一个打包(但不压缩)发送到STDOUT,7za从STDIN接收这些tar包,压缩之后通过管道喂给Ncat发送出去;
接收端的Ncat把接收*到的压缩数据喂给7za解压成tar包,再喂给tar解包写入磁盘。

方法2:用bzip2压缩/解压:
发送端:tar -cv ?.txt|bzip2|ncat 192.168.1.2 --send-only
接收端:ncat -l|bzip2 -d|tar -xvf - -C /tmp

上一篇:CentOS 7-zip解压安装


下一篇:centos文件解压缩7z