[英]C# - Ftp protocol implementation
在Compact Framework中,Ftp協議沒有實現,所以我自己開發了它。
我有一個關於被動模式和需要有數據通道來讀取響應的命令的問題。
就我而言,我正在嘗試在我的FTP服務器上檢索(RETR)文件,所以我這樣做:
適用的部分:
部件不能很好地工作(但也可以工作,請參閱下面的說明)
問題是,即使我沒有讀取流上的任何數據,我只需打開數據通道即可獲得“Transfert complete”消息,這種行為是否正常?
對我來說,當我打開數據通道時,我應該收到
“150打開a.she(0字節)的ASCII模式數據連接。\\ r \\ n”
然后一旦讀取操作完成:
“226轉移完成。\\ r \\ n”
當我查看.NET Framework中使用的經典Ftp協議時,情況就是這樣:
FtpWebResponse ftpres = (FtpWebResponse)ftp.GetResponse();
// ftpres.StatusDescription = "150 Opening ASCII mode data connection for a.she (0 bytes).\r\n"
string res = new StreamReader(ftpres.GetResponseStream()).ReadToEnd();
// ftpres.StatusDescription = "226 Transfer complete.\r\n"
希望我足夠清楚......謝謝!
我認為這種行為是正常的,它在服務器端的緩存中預加載數據並發送消息,以便說數據可用並加載。
這是因為當數據通道位於2個服務器之間(而不是客戶端/服務器模式)時,用戶現在應該在傳輸完成時進行,因此只需查看此緩存...
(編輯:在某些情況下,似乎我收到了良好的消息(只有一次數據讀取),奇怪......)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.