簡體   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