HTTP VS FTP
HTTP :HyperText Transfer Protocol 超文本傳輸協議,是基于TCP協議
FTP: File Transfer Protocol 文件傳輸協議, 基于TCP協議, 基于UDP協議的FTP 叫做 TFTP
HTTP 協議 通過一個SOCKET連接傳輸依次會話數據。
FTP 協議中將控制命令、數據分開傳輸的方法,為了提高效率,FTP協議要創建2個SOCKET TCP連接,占用2個TCP,
一個連接用于傳輸控制命令
一個連接用于傳輸數據
FTP服務器的進程由兩大部分組成:
一個主進程,負責接收新的請求。
另外有若干個從屬進程,負責處理單個請求。
還有一個工具phpstudy 搭建ftp比較方便,同時這個工具也方便搭建php服務
IIS ftp 搭建
添加鏈接描述
net ftp 上傳、下載
》》上傳
public void UploadFile()
{FtpWebRequest ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://xxxx");ftpWebRequest.Method = WebRequestMethods.Ftp.UploadFile;ftpWebRequest.Credentials = new NetworkCredential("用戶名","密碼");using (FileStream fileStream = File.Open("需要上傳文件路徑",FileMode.Open,FileAccess.Read)){using (Stream requestStream = ftpWebRequest.GetRequestStream()){fileStream.CopyTo(requestStream);using (FtpWebResponse ftpWebResponse = (FtpWebResponse)ftpWebRequest.GetResponse()){Console.WriteLine("處理狀態碼:"+ ftpWebResponse.StatusCode+"狀態信息:"+ftpWebResponse.StatusCode);}}}}
》》》下載文件
public void DownLoadFile(){FtpWebRequest ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://xxxx/dd文件");ftpWebRequest.Method = WebRequestMethods.Ftp.DownloadFile;ftpWebRequest.Credentials = new NetworkCredential("用戶名", "密碼");//創建要存儲的文件FileStream fileStream = File.Open("文件要存儲的路徑含文件名", FileMode.Open, FileAccess.Write);FtpWebResponse ftpWebResponse = (FtpWebResponse)ftpWebRequest.GetResponse();Stream responseStream = ftpWebResponse.GetResponseStream();byte[] buffer = new byte[1024];int readCount = responseStream.Read(buffer, 0, buffer.Length);while (readCount>0){fileStream.Write(buffer, 0, readCount);readCount= responseStream.Read(buffer, readCount, buffer.Length);}}
》》》獲取文件列表