c語言小項目_用Socket編程實現(xiàn)FTP

c語言小項目_用Socket編程實現(xiàn)FTP

ID:37100596

大小:264.50 KB

頁數(shù):10頁

時間:2019-05-17

c語言小項目_用Socket編程實現(xiàn)FTP_第1頁
c語言小項目_用Socket編程實現(xiàn)FTP_第2頁
c語言小項目_用Socket編程實現(xiàn)FTP_第3頁
c語言小項目_用Socket編程實現(xiàn)FTP_第4頁
c語言小項目_用Socket編程實現(xiàn)FTP_第5頁
資源描述:

《c語言小項目_用Socket編程實現(xiàn)FTP》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、專業(yè)資料題目:用Socket編程實現(xiàn)FTP用Socket編程實現(xiàn)FTP一、目的和意義(功能描述)學(xué)習(xí)了TCP/IP這門課,接觸最多的是用WindowsSockets編程來實現(xiàn)一些功能。因此在熟悉了WindowsSockets的編程思想后,我覺的會很容易實現(xiàn)一個FTP的客戶應(yīng)用程序。它能夠登錄FTP服務(wù)器,并從服務(wù)器端下載數(shù)據(jù)。數(shù)據(jù)同步傳輸系統(tǒng)既適合于服務(wù)器端的目錄遍歷,又適合客戶端對服務(wù)端的上傳文件和下載文件。運(yùn)用Socket(套接字)接口和使用FTP(文件傳輸協(xié)議)來實現(xiàn)客戶端和服務(wù)器端之間信息的交互。該數(shù)據(jù)傳輸平臺分為兩個模塊:

2、服務(wù)器端模塊和客戶端模塊??蛻舴?wù)器程序通過對編程語言VisualC++6.0中的調(diào)用來實現(xiàn)利用TCP/IP協(xié)議中的FTP協(xié)議和封裝在NMFTP內(nèi)的Socket接口進(jìn)行客戶端與服務(wù)器連接,并完成數(shù)據(jù)同步工作,例如:上傳、下載、瀏覽、查詢、對服務(wù)器目錄與文件的管理以及執(zhí)行遠(yuǎn)程命令等。??服務(wù)器端程序則持續(xù)的監(jiān)聽網(wǎng)絡(luò)。當(dāng)接受到客戶端的Socket,服務(wù)器程序提供相應(yīng)的服務(wù)。網(wǎng)絡(luò)通信模塊使用POP3控件來實現(xiàn)客戶端與服務(wù)器的信息交流。函數(shù)功能和流程如下:(1)首先創(chuàng)建一個CFtpclient的類的實例。(2)用LogOnToServer(

3、)函數(shù)登錄到指定的FTP服務(wù)器,允許非匿名用戶和匿名兩種登錄方式,默認(rèn)的端口為21.(3)使用MoveFile()函數(shù)來上傳下載數(shù)據(jù)文件,其中第一個參數(shù)是本地地址,第二個參數(shù)是遠(yuǎn)程地址,文件傳輸選用二進(jìn)制模式。注意,文件傳輸使用同步模式。(4)可以使用Ftpcommand()函數(shù)來執(zhí)行FTP指令,包括常用的“CWD/home/mydir”來改變遠(yuǎn)程服務(wù)器上的地址,并處理服務(wù)器返回的應(yīng)答。當(dāng)這種方式不適用的時候,還可以使用WriteStr()函數(shù)和ReadStr()函數(shù)向遠(yuǎn)程服務(wù)器發(fā)送指令,并自己解釋返回的應(yīng)答。(5)當(dāng)所有的文件傳輸

4、完成之后,使用LogOffServer函數(shù)來斷開與遠(yuǎn)程服務(wù)器的連接。二、基本原理它的原理也相當(dāng)?shù)暮唵?,客戶端程序?qū)崿F(xiàn)一個命令行或圖形界面,將用戶命令翻譯成FTP命令,并發(fā)送給服務(wù)器端程序。服務(wù)器端程序響應(yīng)FTP命令,并將操作成功與否的信息以FTP響應(yīng)形式返回給客戶端程序。雙方遵守FTP協(xié)議,完成文件傳輸服務(wù)。就是利用MFC提供的CSocket類和CAsyncsocket類實現(xiàn)一個客戶/服務(wù)器模式的數(shù)據(jù)通信模式,使用CSocketFile類和CArchive類來讀寫數(shù)據(jù)。它很好的實現(xiàn)了所有的功能,提供了簡潔實用的接口。三、詳細(xì)設(shè)計Wi

5、ndowsSockets實現(xiàn),一個WindowsSockets實現(xiàn)是指實現(xiàn)了WindowsSockets規(guī)范所描述的全部功能的一套軟件。一般通過DLL文件來實現(xiàn)。Windows環(huán)境下進(jìn)行網(wǎng)絡(luò)程序設(shè)計的最基本方法是應(yīng)用WindowsSockets來實現(xiàn),通過使用MFC提供的WindowsSockets類,能夠很好的完成FTP的功能。連接管理:  數(shù)據(jù)連接有3大用途: ?。?)從客戶向服務(wù)器發(fā)送一個文件 ?。?)從服務(wù)器向客戶發(fā)送一個文件 ?。?)word完美格式專業(yè)資料從服務(wù)器向客戶發(fā)送文件或目錄列表?! ∶恳粋€數(shù)據(jù)連接對傳輸一個文件

6、或目錄序列都要建立一個新的連接?! 。?)客戶發(fā)出命令要求建立數(shù)據(jù)連接 ?。?)客戶在客戶主機(jī)上未數(shù)據(jù)連接選擇一個固定的端口號 ?。?)客戶使用PORT命令從控制連接上把端口號發(fā)給服務(wù)器?! 。?)服務(wù)器在控制連接上接收端口號,并向客戶端主機(jī)上的端口發(fā)出主動打開,服務(wù)器的數(shù)據(jù)連接使用端口21?;咎捉幼譃榱烁谜f明套接字編程原理,給出幾個基本的套接字,在以后的篇幅中會給出更詳細(xì)的使用說明。1、創(chuàng)建套接字——socket()功能:使用前創(chuàng)建一個新的套接字格式:SOCKETPASCALFARsocket(intaf,inttype,in

7、tprocotol);參數(shù):af:通信發(fā)生的區(qū)域type:要建立的套接字類型procotol:使用的特定協(xié)議2、指定本地地址——bind()功能:將套接字地址與所創(chuàng)建的套接字號聯(lián)系起來。格式:intPASCALFARbind(SOCKETs,conststructsockaddrFAR*name,intnamelen);參數(shù):s:是由socket()調(diào)用返回的并且未作連接的套接字描述符(套接字號)。其它:沒有錯誤,bind()返回0,否則SOCKET_ERROR地址結(jié)構(gòu)說明:structsockaddr_in{shortsin_fa

8、mily;//AF_INETu_shortsin_port;//16位端口號,網(wǎng)絡(luò)字節(jié)順序structin_addrsin_addr;//32位IP地址,網(wǎng)絡(luò)字節(jié)順序charsin_zero[8];//保留}3、建立套接字連接——co

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。