本文适用于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(-si),7za从STDIN接收这些tar包(-so),压缩之后通过管道喂给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
命令行解释:原理与方法1一样,只是把压缩程序换成bzip2。用bzcat替换接收端的bzip2也可以,该程序专职解压缩。
来源:https://blog.51cto.com/9843231/2432123