2010-08-26 79 views

回答

3

CIT不要緊的語言,一旦你連接到FTP服務器,只需填寫下列FTP協議的命令..

您應該檢查File Transfer Protocol RFC創建FTP客戶端

這就是如果你想從頭開始做一個ftp客戶端。你可以使用庫來做到這一點。

您需要的命令可能是LIST命令。但它很糟糕。一個新的RFC更新第一個,並添加兩個新的命令,完成你想要的。這些命令是MLSTMLSD,您可以看到RFC 3659 here。你應該保重,我想並不是所有的ftp服務器都接受這些命令。

一個人認爲你可以這樣做,就是使用嗅探器如Wireshark來嗅探並獲取有關FTP客戶端使用哪些命令的信息。 (BTW:Wireshark過濾器應該是:ftp || ftp-data)

Linux FTP命令使用LIST作爲其dir命令。

+0

@Marco:我想獲取files.folders的創建日期和時間等等......我用C++創建了FTP客戶端。我正在使用CFtpConnection連接到FTP服務器。 – 2010-08-27 04:59:30

+0

在RFC中指定了命令LIST,但更新添加了兩個新命令(MLST和MLSD)。發送這些命令你應該得到你想要的信息。這些命令在RFC 3659中指定,用於更新第一個rfc。我將編輯我的帖子以添加它。 – Marco 2010-08-27 05:23:07

+0

@Marco,但我是用CFTPsession,CFtpConnection,GetFtpConnection連接到FTP,然後使用CFtpFileFind找到的所有文件和存在於這種情況下,我怎麼可以使用這些上面的命令這樣做服務器目錄或u有任何aother FTP C++客戶端庫? – 2010-08-27 05:37:32

0

有兩個方面的問題......首先你需要選擇一些C++(或C)套接字函數來進行連接,然後你需要實現期望的FTP發送/接收協議來請求和檢索您感興趣的目錄和文件內容(實際上,儘管您沒有提及它,但您可能也有興趣將檢索的數據寫入您自己系統的某個位置)。

重新實現套接字有很多選擇......您可以使用BSD套接字API或查找一些預製C++ API。如何實現它,或者哪個庫可以爲你做得更好,這很大程度上取決於你的客戶端架構:無論是單線程還是多線程,一次檢索一個文件或者並行下載數百個文件。

對於FTP,可以很容易地找到指定交換協議的RFC文檔,搜索'net',但是要從頭開始實現,這將是相當大的工作。

或者,您可以找到一個已經實現了FTP協議的庫,並將其包裝到應用程序中。從你的問題來看,你不清楚你認爲是「創造一個客戶」,所以這可能會或可能不會計算在內。

當然,您可以下載許多簡單的ftp客戶端以獲取示例代碼,尤其是如果您計算可以構建並可以在C++中定製的C實現。

0

libcurl的是這樣的事情是非常有用的:

http://curl.haxx.se/libcurl/

+0

傢伙,我想創建日期和files.folders等的時間......我已創建的FTP客戶端在C++中。我正在使用CFtpConnection連接到FTP服務器。 – 2010-08-27 03:38:39

相關問題