日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FTP之‘基础连接已关闭:服务器提交了协议冲突’错误探析

發布時間:2025/7/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FTP之‘基础连接已关闭:服务器提交了协议冲突’错误探析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這段時間由于工作的關系,一直研究FTP 服務器/客戶端的相關程序,發現了不少問題,有些確實是微軟的bug(或者說相關代碼不夠健壯) 。

一、微軟IE瀏覽器作為FTP客戶端的bug

?????? 上傳含中文字符的多級目錄的失敗的bug,文件名是否中文無關,只要目錄中出現中文字符,就會出現該問題。用網絡嗅探器探測交互的數據發現,創建多個目錄成功后,在用“CWD”命令調轉當前目錄時FTP客戶端出現bug,含中文字符的目錄名稱,中文信息被過濾掉,導致整個拷貝過程失敗。

?????? 這個bug微軟某個版本的補丁應該修改了(相關信息我沒有查到),因為在Vista系統上IE的ftp客戶端正常。我的出現問題的系統是Windows XP sp2,IE6.0。有心的朋友可以測試一下。

二、“基礎連接已關閉:服務器提交了協議沖突”的錯誤信息

????? 這個問題應該很出名,在網上可以搜索一大片,不過大部分是Http協議沖突,少有ftp的。我這里僅是針對ftp使用過程中的問題。

????? 這個問題是在使用微軟.net 2.0 框架集 “WebClient”類的時出現的問題,相關代碼如下:???

?private void btnDown_Click(object sender, EventArgs e)
??????? {
??????????? //string URL =? @"ftp://admin:admin@"+@txtIP.Text+"//NORFlash//";
??????????? string URL = @"ftp://" + txtIP.Text + "//HardDisk//";
??????????? string strFileName = "";

??????????? lstInfo.Items.Clear();

??????????? if (openFileDialog.ShowDialog() == DialogResult.OK)
??????????? {
??????????????? strFileName = openFileDialog.FileName;
??????????? }
??????????? else
??????????? {
??????????????? lstInfo.Items.Insert(0, DateTime.Now.ToString() + " : 用戶取消操作");
??????????????? return;
??????????? }

??????????? //-----------------------------------------------
??????????? if (File.Exists(strFileName) == true)
??????????? {
??????????????? try
??????????????? {
??????????????????? lstInfo.Items.Insert(0, DateTime.Now.ToString() + " : 開始下載 ...");
??????????????????? Application.DoEvents();???????????????????
??????????????????? client.UploadFile(URL + @"/AAA.text", strFileName);???????????????????
??????????????????? lstInfo.Items.Insert(0, DateTime.Now.ToString() + " : 下載完畢");
??????????????????? Application.DoEvents();
??????????????? }
??????????????? catch (WebException exp)
??????????????? {
??????????????????? lstInfo.Items.Insert(0, DateTime.Now.ToString() + " : 錯誤:" + exp.Message);
??????????????????? return;
??????????????? }
??????????? }
??????????? else
??????????? {
??????????????? lstInfo.Items.Insert(0, DateTime.Now.ToString() + " : 指定文件不存在");
??????????? }??????????

??????? }
用這個代碼同樣出現該問題:

??????? private void Upload(string uri,string filename)
??????? {
??????????? FileInfo fileInf = new FileInfo(filename);
??????????? uri = uri+"//"+ fileInf.Name;
??????????? FtpWebRequest reqFTP;

??????????? // 根據uri創建FtpWebRequest對象
??????????? reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));

??????????? // ftp用戶名和密碼
??????????? reqFTP.Credentials = new NetworkCredential("guest", "");

??????????? // 默認為true,連接不會被關閉
??????????? // 在一個命令之后被執行
??????????? reqFTP.KeepAlive = false;

??????????? // 指定執行什么命令
??????????? reqFTP.Method = WebRequestMethods.Ftp.UploadFile;

??????????? // 指定數據傳輸類型
??????????? reqFTP.UseBinary = true;

??????????? // 上傳文件時通知服務器文件的大小
??????????? reqFTP.ContentLength = fileInf.Length;

??????????? // 緩沖大小設置為2kb
??????????? int buffLength = 2048;

??????????? byte[] buff = new byte[buffLength];
??????????? int contentLen;

??????????? // 打開一個文件流 (System.IO.FileStream) 去讀上傳的文件
??????????? FileStream fs = fileInf.OpenRead();
??????????? try
??????????? {
??????????????? // 把上傳的文件寫入流
??????????????? Stream strm = reqFTP.GetRequestStream();

??????????????? // 每次讀文件流的2kb
??????????????? contentLen = fs.Read(buff, 0, buffLength);

??????????????? // 流內容沒有結束
??????????????? while (contentLen != 0)
??????????????? {
??????????????????? // 把內容從file stream 寫入 upload stream
??????????????????? strm.Write(buff, 0, contentLen);

??????????????????? contentLen = fs.Read(buff, 0, buffLength);
??????????????? }

??????????????? // 關閉兩個流
??????????????? strm.Close();
??????????????? fs.Close();
??????????? }
??????????? catch (Exception ex)
??????????? {
??????????????? MessageBox.Show(ex.Message, "Upload Error");
??????????? }
??????? }
?相關界面如下:?

?

服務器,執行到這一步便執行失敗,此時客戶端程序就會顯示如下錯誤

?

這是和我編寫的FTP Server出現問題,和Wince平臺上的FTP,Moxa 設備上的FTP都正常,我程序唯一的不同就是支持中文信息。也許就是中文信息不能識別的問題?果不其然,請看下圖:

?

此時客戶端正常:

?

?實際測試發現,“WebClient”類并不是不支持“中文”只要在登錄連接過程中ftp Server發送英文信息即可,其他信息可以是中文。

我想這應該是微軟的程序的bug,應該其他客戶端都能正常使用,難道偏偏該指令的有問題?!

后續的幾篇文章,我會繼續介紹ftp相關的東西,希望大家多多關注。

?

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的FTP之‘基础连接已关闭:服务器提交了协议冲突’错误探析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产高清视频在线观看 | 九九热这里都是精品 | 国产欧美三区 | 一区二区日本 | 日韩第一视频 | 精品成人免费一区二区在线播放 | 成人免费xxxxxx视频 | 中文国产视频 | 日韩一区二区三区在线播放 | 日少妇av| 五月天一区二区三区 | 日本成人免费观看 | 男女做激情爱呻吟口述全过程 | 中文字幕一区二区在线观看视频 | 中文字幕av亚洲精品一部二部 | 色哟哟国产精品 | 成人看片泡妞 | 国产精品久久久久久福利 | 狠狠躁18三区二区一区视频 | 欧洲视频一区二区三区 | 免费观看日韩 | 国产一区二区不卡视频 | 欧美视频一区二区三区四区在线观看 | 成人三级影院 | 久免费一级suv好看的国产 | 午夜在线影院 | 日韩久久久久久久久久久 | 久久成人动漫 | 深夜成人在线观看 | 国产又黄又猛又粗又爽 | 日本不卡免费在线 | 中文字幕乱码一区 | 宗合久久| 一区二区免费视频 | 96久久精品| 国产高清免费av | 日本免费黄色网 | 粗大黑人巨茎大战欧美成人免费看 | 亚洲欧洲激情 | 影音先锋黄色网址 | 综合激情婷婷 | 天天看夜夜 | 超碰蜜臀| 好吊色欧美一区二区三区视频 | 久久午夜无码鲁丝片 | 国产极品尤物 | 自拍偷拍福利视频 | 综合激情四射 | 中文字幕一区二区三区电影 | 超碰人人干 | 久久午夜鲁丝片午夜精品 | 秋霞精品 | 午夜精品无码一区二区三区 | 国产一二区在线 | 久久狠狠爱 | 日韩经典在线观看 | 亚洲区视频在线观看 | 成人欧美在线视频 | 久久免费av | 国产又黄又硬又粗 | 久久久久一区二区三区 | 精品乱子一区二区三区 | 日本一区二区高清免费 | 欧美乱妇狂野欧美在线视频 | 黑料av在线 | 爱爱爱免费视频 | 午夜888| 亚洲精品国产欧美在线观看 | 长腿校花无力呻吟娇喘的视频 | 91极品视觉盛宴 | 朴麦妮原版视频高清资源 | 九色亚洲| 嫩草影院在线视频 | 美女露胸软件 | 国产三级在线免费观看 | 在线看片资源 | 日日干天天射 | 亚洲视频一二三 | 亚洲精品网站在线观看 | 欧美一级片一区二区 | 自拍99页 | 欧美精品一区二区性色a+v | 久久久三级视频 | 国外亚洲成av人片在线观看 | 久久久久久久久亚洲 | 欧美亚洲另类在线 | 久久久新 | 久久久久久久亚洲 | 男女激情大尺度做爰视频 | 清纯粉嫩极品夜夜嗨av | 男人天堂tv | 中文字幕一区二区三区乱码不卡 | 久久精品久久精品久久精品 | 日韩少妇视频 | 成人影音在线 | 黄色欧美大片 | yes4444视频在线观看 | 少妇又紧又色 | 野花中文免费观看6 |