我必须编写一个FTP服务器,并且在传输数据时遇到问题。如何通过套接字发送/接收二进制数据?
我在Linux上使用FTP命令来测试它,我目前正在LIST
,这将在工作目录中的文件/目录列表。一切正常,只是FTP(FTP以及打印文件的列表)打印以下警告:
WARNING! 5 bare linefeeds received in ASCII mode
File may not have transferred correctly.
我想删除的警告,我认为FTP期待的二进制数据,但我不知道如何通过套接字发送数据那样的,我目前做的最基本的方式发送ls
结果:
dup2(dst_channel, 1);
execlp("ls", "ls", "-l", NULL);
FTP预计换行符是CR-LF,但您只是发送LF。 – Barmar 2013-04-09 21:23:10
有没有办法改变,而不必读取命令'ls'的结果并用CR-LF替换每个LF? – 2013-04-09 21:25:21