ftp返回碼
Ⅰ C#中ftp編程 遠程伺服器返回錯誤: (550) 文件不可用(例如,未找到文件,無法訪問文件)
你的文件路徑在ftp中已經存在,再次創建則會報這個錯誤 。
Ⅱ FTP協議是什麼
FTP協議其實是文件傳輸協議,是TCP協議組中的協議之一,值得一提的是FTP協議包含兩個部分,一個是FTP伺服器,另一個是FTP客戶端,我們在日常生活中使用的時候一定要學會區分才行,希望每個人都能夠認識到這一點,同時我們需要注意的是在日常生活中,電子信息行業發展是非常的迅速的,我們在日常生活中一定要學會使用電腦才行,只有這樣才可以讓我們的生活更加的美好。
個人建議:
同時我們需要注意的是,在學習電腦的過程中,一定要學會不恥下問,只有這樣才可以讓我們的能力有一個更加快速的提升,希望每個人都能夠認識到這一點,對於一些專業名詞來說,我們可以查閱相關的資料就可以解決了。
(2)ftp返回碼擴展閱讀:
FXP傳送出錯時,本地的用戶進程還留在FTP伺服器中,並沒有退出,如此時再次連接FTP伺服器,可能會因用戶線程超過允許,FTP伺服器提示客戶已登陸並拒絕客戶端的連接,直至伺服器中的傀儡進程因超時或其他原因被FTP伺服器殺死後,才能再次連接FTP伺服器。
要連上 FTP 伺服器(即「登陸」),必須要有該 FTP 伺服器授權的帳號,也就是說你只有在有了一個用戶標識和一個口令後才能登陸FTP伺服器,享受FTP伺服器提供的服務。
FTP協議的任務是從一台計算機將文件傳送到另一台計算機,它與這兩台計算機所處的位置、聯接的方式、甚至是是否使用相同的操作系統無關。假設兩台計算機通過ftp協議對話,並且能訪問Internet,
你可以用ftp命令來傳輸文件。每種操作系統使用上有某一些細微差別,但是每種協議基本的命令結構是相同的。
FTP的傳輸有兩種方式:ASCII傳輸模式和二進制數據傳輸模式。
Ⅲ FTP無法連接
注意這段話:
227 Entering Passive Mode (60,165,133,154,13,31)
ERROR: [Data]: Connection refused
PASV模式,PORT模式錯誤~!
如果你用的是ftp客戶端軟體請把被動模式選擇上就可以了。
補充:返回值:227 Entering Passive Mode (60,165,133,154,13,31)說明
每一個ftp發送之後,ftp伺服器都會返回一個字元串,其中包括一個返回代碼和一串說明信息。這個返回碼主要是用於判斷命令是否被成功執行了。除此之外,還有一個非常重要的命令的返回。當發送pasv之後,返回「227 entering passive mode (60,165,133,154,13,31)」。這意味著在伺服器上有一個埠被開放,他將為我們後面接著的數據傳輸作好准備,但是我們如何知道該埠號呢,就在(60,165,133,154,13,31)中,前面四位指伺服器的地址,關鍵是最後兩位,將最後第二位乘256再加上最後一位的值就是我們的埠號,也就是13*256+31。取得埠號之後我們就可以用socket連接到這里。這為我們後面的工作作好准備了,因為我們的取得列表,上傳,下載文件都要依靠它來實現。常用的返回如下:
125 data connection already open; transfer starting.
226 transfer complete.
227 entering passive mode (60,165,133,154,13,31).
230 user xxxxx logged in.
331 password required for xxxxx.
425 can』t open data connection.
226 closing data connection.
ftp客戶端編程結構:
前面已提到了ftp命令及其響應信息。其實我們做ftp客戶端工具只不過是用一個winsocket連接上ftp伺服器,然後象其發送命令。在這個過程中,我們依靠發送——響應的機制。即發送ftp命令——接收返回的響應信息——分析該信息——執行相關操作——發送下一條命令。在一般意義上,有一個socket用來連接ftp伺服器的相關埠(如默認的21),它負責ftp命令的發送和接收返回的響應信息。一些操作如「進入目錄」,「刪除文件」,依靠這個socket發送一條命令就可完成了。然而對於有數據傳輸的操作,主要是顯示遠端目錄列表,上傳、下載文件,我們不得不依靠另一個socket來完成。在進行這種操作之前,必須發送pasv命令,它返回了227開頭的信息,在括弧中有以逗號隔開的六個數字,前四個指伺服器的地址,關鍵是最後兩個,將倒數第二個乘256再加上最後一個數字,其結果就是ftp伺服器開放的用於下一條命令來進行數據傳輸的埠。如我們得到227 entering passive mode (60,165,133,154,13,31),那麼埠號是13*256+31=3359。我們用一個socket來連接這個埠,之後,我們可根據具體的操作(顯示目錄list,上傳文件stor,下載retr)來發送命令。返回的響應代碼為125開頭,也就是連接打開了,可以開始傳輸數據,這時就可用socket的發送或接收方法來傳輸數據。完成之後,伺服器會返回代碼226 transfer complete,表明數據傳輸完成。值得注意的是,我們最好不要一次發送多條命令,例如我們要回到上層目錄並且顯示這個目錄,我們得發送cp,pasv,list,我們不能一下子發送:cp\r\n, pasv\r\n, list\r\n。 而是發送完cp之後等待其響應代碼,然後再發送後面一條。當pasv返回之後,我們打開另一個socket連接到相關埠上。然後發送list,返回125之後在開始接收數據,最後返回226表明完成。對於上傳和下載也是差不多的過程(下載之前要先取得文件的大小)。