标签: c unix tcpsocket
我正在尝试使用常用函数(如fread(),fwrite(),send()和recv())通过UNIX套接字实现ftp命令GET和PUT以进行文件传输。
它适用于文本文件,但二进制文件失败(diff说:“二进制文件不同”)
有关以下内容的任何建议将不胜感激:
答案 0 :(得分:3)
FTP协议有两种操作模式:文本和二进制。 在任何FTP客户端尝试它 - 我相信切换的命令是ASCII和BIN。文本模式仅在我记得的CR / LF对上有效。
答案 1 :(得分:0)
如果您正在读取文件,然后将文件的数据写入套接字,请确保以二进制模式打开文件。
是的,diff可用于比较二进制文件,通常使用-q option来抑制差异的实际打印,这对二进制文件很少有意义。如果您有md5或cmp,也可以使用它们。