Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法通过unix tcp套接字发送二进制数据_C_Unix_Tcpsocket - Fatal编程技术网

无法通过unix tcp套接字发送二进制数据

无法通过unix tcp套接字发送二进制数据,c,unix,tcpsocket,C,Unix,Tcpsocket,我正在尝试使用常用函数(如fread()、fwrite()、send()和recv())实现ftp命令GET和PUT通过UNIX套接字进行文件传输 它适用于文本文件,但不适用于二进制文件(diff说:“二进制文件不同”) 如有任何关于以下方面的建议,将不胜感激: 是否有任何特定的命令来读取和写入二进制数据 diff可以用来比较二进制文件吗 有可能以内存块的形式发送二进制部分吗 FTP协议有两种操作模式:文本和二进制。 在任何FTP客户机上都可以试试——我相信在两者之间切换的命令是ASCII和BI

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

它适用于文本文件,但不适用于二进制文件(diff说:“二进制文件不同”)

如有任何关于以下方面的建议,将不胜感激:

  • 是否有任何特定的命令来读取和写入二进制数据
  • diff可以用来比较二进制文件吗
  • 有可能以内存块的形式发送二进制部分吗

  • FTP协议有两种操作模式:文本和二进制。
    在任何FTP客户机上都可以试试——我相信在两者之间切换的命令是ASCII和BIN。文本模式仅对我记忆中的CR/LF对有效。

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


    是的,可以使用diff来比较二进制文件,通常使用来抑制差异的实际打印,这对于二进制文件来说几乎没有意义。您也可以使用或(如果有)。

    我正在使用unix TCP套接字模拟FTP的行为,因此我想知道是否有任何方法可以通过简单的unix传输二进制文件socket@abcdxyz您必须告诉FTP服务器您希望以哪种模式发送/接收文件,文本或二进制。谢谢你的建议:)但我面临另一个问题。。当我尝试传输一个大小为4.3kb的图像时,代码工作得非常好。但是它拒绝传输一个5.7MB的音频文件:(请帮助!我需要将数据转换成字节然后传输吗?