我必須編寫一個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