1

我正在尝试通过 UNIX 套接字实现 ftp 命令 GET 和 PUT,以使用 fread()、fwrite()、send() 和 recv() 等常用函数进行文件传输。

它适用于文本文件,但适用于二进制文件(差异表示:“二进制文件不同”)

任何有关以下内容的建议将不胜感激:

  1. 是否有任何特定的命令来读取和写入二进制数据?
  2. diff可以用来比较二进制文件吗?
  3. 是否可以在内存块中发送二进制部分?
4

2 回答 2

3

FTP 协议有 2 种操作模式:文本和二进制。在任何 FTP 客户端中尝试它——我相信用于切换的命令是 ASCII 和 BIN。文本模式仅对我回忆的 CR/LF 对产生影响。

于 2011-04-26T11:43:42.113 回答
0

如果您正在读取文件,然后将文件的数据写入套接字,请确保以二进制模式打开文件

是的,diff 可用于比较二进制文件,通常使用-q 选项来抑制差异的实际打印,这对二进制文件几乎没有意义。如果你有md5cmp ,你也可以使用它们。

于 2011-04-26T13:13:03.673 回答