999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Linux系統的文件傳送實現

2017-04-25 09:41:43肖雪冬遼寧錦州渤海大學信息科學與技術學院
數碼世界 2017年4期
關鍵詞:系統

肖雪冬 遼寧錦州渤海大學信息科學與技術學院

Linux系統的文件傳送實現

肖雪冬 遼寧錦州渤海大學信息科學與技術學院

本文實現Linux系統下的FTP文件傳輸系統。系統實現分為客戶端和服務器端,客戶端具有用戶登錄、目錄查看、上傳文件、下載文件等功能。服務器端具有查詢客戶端命令、處理客戶端命令和文件處理等功能,實現工具為C語言。客戶端應用了套接字編程并通過定義ftpcmd結構體,完成了文件的傳輸。

Linux系統 FTP 客戶端文件傳輸

1 引言

Internet技術飛速發展,推動了全球范圍內信息的傳輸、交流和共享。海量的數據、軟件分布在世界各地,人們只需輸入信息,就能得到大量所需要的資源信息,文件傳輸是為其實現提供了重要方法。FTP(File Transfer Protocol, FTP)文件傳輸系統是最常用的文件傳輸方式,不同系統下的FTP文件傳送均有實現,特別是基于windows系統。相對于windows系統,Linux系統具有開源和自由傳播等優點,有著廣泛的應用前景。

文件傳送是因特網中的一項重要應用,為廣大用戶提供了實時傳送非頁面的途徑。FTP文件傳輸協議是Internet最原始最重要的協議之一,雖然目前www已經取代了FTP的很多功能,如軟件下載,文件傳輸等等。但通過Internet從客戶向服務器傳輸文件時,仍然還在使用FTP。因為互聯網上各種各樣的軟件資源都是放在FTP服務器中的,而且這也是網上文件傳輸最好的方式。同樣在局域網上也可以建立FTP服務,以滿足局域網文件傳輸和資源共享的需要。隨著網絡用戶的增加,對文件傳送功能的要求也越來越多,為了滿足用戶各有特色的需要,通用的文件傳送協議如FTP、TFTP和NFS等遇到了問題,特別是Linux系統下為提供安全性、可靠性高的文獻傳送,需要設計獨有的文件發送和接收程序。

2 系統總體設計

本次課題的設計是實現一個采用C/S結構的FTP系統,所選用的設計平臺在上一章中我們進行了比較詳細的介紹,在這一章我們將對FTP系統需要完成的目標、功能需求、性能需求做出進一步的說明,并對整個C/S結構系統進行總體的設計。

文件傳送功能的實現主要包括:獲取磁盤信息,獲取目錄信息,獲取文件信息,運行指定文件,刪除指定文件,刪除指定目錄,創建指定目錄,上傳下載文件,獲取遠程文件圖標。

本次課題的FTP系統的功能需求主要包括:

①實現文件的傳送,在設計中我們應用C/S模型分別對用戶的下載要求和上傳要求進行編程實現。采用的是一對一的傳輸模型,當客戶端輸入下載或者上傳命令后,客戶端能夠作出正確的響應并可以成功將文件下載到客戶端或者將文件上傳到服務器。

②FTP系統的用戶登錄驗證,眾所周知,在Internet環境下進行數據傳輸,我們很多情況下都需要提供自己的登錄名和密碼,才能實現相關的操作,這個要求既是區分等級,判定用戶權限的好方法,也是保護隱私的一種必要操作。本次設計的FTP系統設計的是權限用戶,用戶想要連接上服務器,則必須輸入對應的用戶名和密碼。才能進行文件傳輸的有關操作。

③FTP系統的目錄查看,目錄查看功能能夠直觀化的知道文件夾中包含哪些內容,方便對其進行操作和管理。

3 系統實現

FTP模型的結構一般由服務器端和客戶端兩部分所構成,本文研究的FTP文件傳輸系統是由Linux系統下的FTP服務器和客戶端構成,在這一章將著重研究該環境下FTP客戶端和服務器的設計實現。本章的設計實例中,客戶端和服務器工作在同一臺電腦上,因此FTP服務器采用的是本地IP地址127.0.0.1。

3.1 FTP客戶端設計實現

FTP客戶端工作流程如下:

①首先創建一個客戶端控制連接套接字。

②創建init函數對數據進行初始化,將FTP數據命令設置為被動模式。

③客戶端向服務器發起控制連接,調用login函數登陸FTP服務器,服務器驗證用戶名和用戶密碼。

④客戶端登陸服務器,客戶端輸入命令,服務器調用check_ ftpcmd函數對命令進行合法性檢查,并解析該命令和該命令所需參數。

⑤命令驗證正確,向服務器發送該命令,調用get_ftpcmd_ status函數接收服務器應答狀態。

⑥服務器處理客戶端命令。

⑦關閉連接。

系統登錄成功后,先進行目錄查看。文件目錄列表是指用戶請求查看在服務器當前目錄下的文件列表,服務器響應該查詢請求,并將該文件列表以目錄形式傳送回客戶端,程序設計中編寫了函數do_list_pasv(intfd,charcmd,charargs)來實現被動模式下在客戶端查看服務器目錄功能。

①調用pasv_notify(fd)函數,客戶端向服務器發出PASV命令,客戶端通過make_conn(port_pasv)函數主動連接到ftp服務器。

②客戶端發送ls命令請求查看服務器目錄,調用send_ ftpcmd(fd, cmd, args)函數將傳入的ls命令和命令參數構造成FTP協議命令字的形式發給FTP服務器,然后客戶端調用get_ ftpcmd_status(fd, res_buffer)函數獲得服務器的應答信息和應答狀態status。

③調用list_flies(sockfd_pasv)函數實現在客戶端顯示服務器目錄。

程序中用for循環和read()函數讀取數據

④關閉數據連接。

建立FTP數據連接的前提是控制連接己經正確建立,FTP的客戶身份驗證需要在控制連接的引導下才能完成,程序設計中我們定義了login(host,port)函數,它的主要功能是在啟動客戶端程序時,登錄FTP服務器。首先客戶端先與服務器建立數據連接,客戶端向服務器發送get(下載)命令,客戶端通過控制連接讀取到服務器的正確應答命令,然后服務器開始執行下載命令,將文件在服務器下載到客戶端對應的目錄下,文件下載完成后關閉連接。程序設計中編寫了函數do_get_pasv(int fd, char cmd,char args)來實現被動模式下客戶端從服務器下載文件。

①調用pasv_notify(fd)函數創建被動模式下的監聽套接字,客戶端通過make_conn(port_pasv)函數主動連接到ftp服務器。

②客戶端發送get命令請求從服務器下載文件,調用send_ ftpcmd(fd, cmd, args)函數將傳入的get命令和命令參數構造成FTP協議命令字的形式發給FTP服務器,然后客戶端調用get_ ftpcmd_status(fd, res_buffer)函數獲得服務器的應答信息和應答代碼status。

③調用download_flie(fp, res_buffer)函數實現從當前本地目錄中進行上載文件的處理。

④關閉數據連接。

重置data_flag標志位為0。其中get指令代表從服務器下載文件到客戶端,/home/lzj/service代表要下載文件的路徑,download代表要下載的文件。第二個download代表把下載的文件保存到本地的名稱。

3.2 服務端設計實現

服務器程序的最終編譯結果放home/lzj/simple-ftp-master這個路徑下的,輸入/home/lzj/simple-ftp-master/myftpd/ home/lzj/service/ 8888開啟服務器。其中,myftpd代表服務器名稱,home/lzj/service/表示服務器的當前工作路徑,上傳到服務器的文件將存放在這個路徑下,8888是服務器開啟的用來傳輸數據的端口。

服務器端首先建立一個socket(),設置好本地的IP和端口與socket進行綁定,開始監聽請求。當服務器接收到客戶端連接請求后,發送確認,同客戶端建立連接,客戶端建立一個socket(),設置好服務器端的IP和提供服務器的端口,發送連接請求,當接收到服務器確認后,進行連接,客戶端開始與服務器進行通信。處理客戶端發送的各種命令。

具體實現過程如下:

①創建服務端地址。

②本地套接字綁定IP地址及端口號。

③監聽客戶端發起的連接請求。

④接收客戶端發起連接請求。

⑤通過service_loop函數查詢客戶端命令。

⑥通過service_handleCmd函數處理客戶端命令。

FTP服務器創建函數完成對FTP客戶端命令的處理,并進行客戶端與服務器端的交互。這里我們引入函數service_handleCmd( int a_socket, String *ap_argv,const int a_argc)處理客戶需求,從客戶端連接成功開始到結束服務。

FTP服務器當收到客戶端需要進行數據傳輸的請求時,建立新的套接字進行數據傳輸,實現文件的上傳下載操作。在這里我們引入函數void handle file(int client sock)處理文件功能。這里依然是用套接字編程實現的。

4 總結

本文通過Linux操作系統下的FTP協議分析,完成了系統文件傳輸功能。我們通過程序設計實現了一個完整標準的LINUX下的FTP服務器和客戶端文件傳輸系統,具有一定的學習意義和實際應用價值。

[1]蔡勇.FTP服務器技術研究及實現[M].成都:電子科技大學,2005

[2][美]Kurose,J.F等著.計算機網絡:自頂向下方法與Internet特色(原書第3版)[M].北京:機械工業出版社.2005.6

[3][美]Richard Stevens,范建華譯.TCP/IP詳解[M].北京:機械工業出版社.2000.4

[4]劉晨.被忽視的FTP網絡信息資源[J].網絡縱橫,2001,(4):89-90

[5]王大亮,曾廣平.張德政.UBUNTU標準教程[M].北京:人民郵電出版社.2008.5

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 毛片一级在线| 18禁黄无遮挡免费动漫网站| 成人在线天堂| 日韩毛片视频| 久草网视频在线| 老汉色老汉首页a亚洲| 免费a级毛片18以上观看精品| 中文字幕日韩欧美| 国产精品成人观看视频国产 | 少妇精品在线| 国产乱子伦精品视频| 国模粉嫩小泬视频在线观看| 天天综合天天综合| 国产日韩欧美一区二区三区在线| 国产福利影院在线观看| 国产精品开放后亚洲| 美女视频黄频a免费高清不卡| 国产精品无码制服丝袜| 免费看黄片一区二区三区| 国产系列在线| 一级毛片无毒不卡直接观看 | 中文字幕久久亚洲一区| 亚洲国产日韩视频观看| 在线va视频| 一级爱做片免费观看久久| 久久精品国产91久久综合麻豆自制| 亚洲精品国产精品乱码不卞| 丁香五月婷婷激情基地| 中文字幕在线看| 日韩一区二区在线电影| 日韩精品无码免费专网站| 欧美日韩理论| 久热99这里只有精品视频6| 日本人真淫视频一区二区三区| 538国产在线| 美女被操91视频| 国产成人一区二区| 久久午夜夜伦鲁鲁片无码免费| 欧美一区二区精品久久久| 永久在线播放| 日韩欧美中文字幕在线精品| 国产一区二区网站| 国产尹人香蕉综合在线电影| 亚洲综合二区| 精品無碼一區在線觀看 | 日韩在线观看网站| 亚洲国产中文在线二区三区免| 久久99精品久久久久纯品| 在线国产资源| 日韩在线2020专区| 国内精品免费| 国产一区二区三区在线观看免费| 国产精品亚洲αv天堂无码| 乱人伦视频中文字幕在线| 日韩在线播放欧美字幕| 亚洲国产成熟视频在线多多 | 先锋资源久久| 亚洲无码精品在线播放| 人妻丰满熟妇αv无码| 亚洲妓女综合网995久久 | 亚洲综合色婷婷中文字幕| 免费一级毛片在线播放傲雪网| 成人免费一级片| 亚洲精品免费网站| 香蕉久久国产超碰青草| 九色最新网址| 日本午夜三级| 午夜精品一区二区蜜桃| 91人人妻人人做人人爽男同| 91福利免费| 一区二区三区四区精品视频| 伊人成人在线视频| 日韩福利视频导航| 亚洲天堂高清| 亚洲狠狠婷婷综合久久久久| 91精品专区国产盗摄| 亚洲中文精品人人永久免费| 欧美一级在线| 国产精品太粉嫩高中在线观看| 国产天天射| 女人一级毛片| 亚洲日韩高清无码|