繁体   English   中英

通过套接字传输压缩文件?

[英]Transfer compressed files over a socket?

我有两台电脑。 一台(计算机2)正在从2个不同的进程中获取文件(.json),然后(通过以太网电缆)将此文件传递到另一台计算机(计算机1)(如随附的图像)。 这种情况不断发生,而不仅仅是一个人。

为此,我的想法是:

  • 在c中创建服务器/客户端套接字,以通信两台计算机。
  • 将计算机2中的文件(总共说4个文件)压缩。
  • 接收计算机1中的文件。

一开始我想做的一种方式是使用bash中的Netcat和tar。 但是我读到它不是一个好主意,因为bash在文件传输中不能很好地工作。 因此,我决定使用C语言(它必须是C或C ++,而不是python,但我的C语言更好,因此可以选择C)。 所以现在我用下面的示例代码来做到这一点:

使用C / C ++(GCC / G ++)在Linux中的套接字编程中发送和接收文件

但我无法弄清楚tar的一部分并发送Tar,如果该代码对此有所帮助。

我想做的另一种方式是用zeromq,但是我以前没有用过,所以我不知道是否值得进行额外的学习。

预先非常感谢您的回答。

图片

.tar文件格式是非常简单的(和文件如何读/写.tar文件可以自己通过的“.tar文件格式”或类似谷歌搜索可以找到),或者你可以只使用现有的libtar读/作家库,如果您不想重新发明轮子。

另一个替代方法(假设您只需要一个快速程序来处理个人用例,而无需生产级解决方案)就可以调用system ()(或类似方法)以使其代表相应的shell命令执行。的C程序-但是,如果这足够好,人们不得不怀疑为什么简单的bash脚本也不能被接受。 Bash可能并不擅长本机文件传输,但是您可以从bash调用的各种命令行实用程序(scp,rsync,tar,untar等)肯定能正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM