2012-12-07 63 views
0

我必須爲想要將文件傳輸到服務器的協議RCFTP的客戶端編寫代碼。該操作應該是:客戶端發送一個請求來保存文件的一部分,服務器將響應,如果你已經收到這個片斷沒有錯誤。如果是這樣,那麼客戶端仍然會發送文件的各個部分,直到您提交所有文件都沒有錯誤。如果傳輸錯誤,客戶端必須發回失敗的文件。如何在C中編寫FTP客戶端?

想知道一些幫助嗎?

+1

錯誤檢查未在FTP中執行;它在TCP中。您不必在應用程序級別重新構建它。 [RFC](http://tools.ietf。org/html/rfc959)也聲明:「沒有規定檢測數據傳輸中丟失或擾亂的位;這種錯誤控制級別由TCP處理。」_ – CodeCaster

回答

9
  1. 調查是否可以使用任何預先存在的代碼,如庫。
  2. 請閱讀sockets並嘗試執行the FTP protocol
  3. 當你有具體問題並能顯示一些代碼時,請回到這裏。 :)
0

使用您最喜愛的互聯網搜索引擎搜索套接字教程。

我發現一個here

6

首先,如果你要編寫一個FTP客戶端真的仔細閱讀本:RFC959

爲了幫助您在開始的時候,這裏是你需要知道的幾個步驟(肯定的,我就不一一介紹了一切,但它可能會幫助你):

  1. 連接您的插座(控制插座)連接到端口21上的ftp服務器。
  2. 您將在您的套接字上接收來自ftp服務器的消息(代碼:220)。
  3. 然後您使用命令USER將您的登錄名發送到ftp服務器並等待確認(331)
  4. 然後使用命令PASS發送您的密碼並等待確認您在服務器上登錄(230)。
  5. 現在你可以在ftp上做一些操作。

要發送的文件,你必須使用被動模式:

  1. 發送命令PASV,你會得到讓你的IP地址和端口(227)的答案,你將不得不解析這條信息。
  2. 連接具有給定配置的第二個套接字(數據套接字)。
  3. 在控制套接字上使用命令STOR(定義要在服務器上創建的文件)
  4. 通過數據套接字發送數據,完成後關閉數據套接字。

然後在控制套接字上使用QUIT命令。

如果你習慣了「套接字概念」,編寫一個簡單的ftp客戶端顯然很容易。