linux程序設(shè)計大作業(yè)解題思路_第1頁
linux程序設(shè)計大作業(yè)解題思路_第2頁
linux程序設(shè)計大作業(yè)解題思路_第3頁
linux程序設(shè)計大作業(yè)解題思路_第4頁
linux程序設(shè)計大作業(yè)解題思路_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、大作業(yè)解題思路實現(xiàn)一個FTP服務系統(tǒng)具體:基于客戶/服務器交互模式,采用TCP/IP通信協(xié)議,實現(xiàn)以支持遠程文件傳輸?shù)目蛻?服務器軟件,支持文件的上傳和下載。其中客戶端軟件命名為myftp,服務器軟件命名為實驗題目2服務器啟動方式:執(zhí)行 IP地址 port 啟動FTP服務其中IP地址為可選項,如不提供服務器IP地址,F(xiàn)TP服務將自動綁定到本地網(wǎng)絡的IP。用戶認證與權(quán)限管理:為FTP客戶提供基于用戶名/密碼認證的服務模式,只有授權(quán)用戶才可以對指定文件進行讀寫操作。用戶只有在具備寫權(quán)限操作的目錄上才能上傳文件。(可直接集成linux服務器系統(tǒng)的用戶管理)并行執(zhí)行功能:要求服務器采用多進程/線程技術(shù)

2、響應客戶請求。當客戶通過身份驗證后,服務器將創(chuàng)建一個新的進程/線程來響應用戶請求,提供服務。服務傳輸模式:支持二進制(默認)和ASCII傳輸模式。用戶可通過執(zhí)行binary/ascii命令切換傳輸模式。實驗要求3服務器服務器支持的客戶文件操作:登錄成功后,客戶可在服務器執(zhí)行以下操作:創(chuàng)建/刪除目錄(mkdir/rmdir)、顯示當前路徑(pwd)、切換目錄(cd)、查看目錄下的所有文件(ls)、上傳單個/多個文件(put/mput)、下載單個/多個文件(get/mget)。站點計數(shù)與用戶管理功能:統(tǒng)計服務器站點的當前活動用戶數(shù)及自運行以來的訪客總數(shù)。系統(tǒng)管理員可在服務器軟件終端端窗口執(zhí)行以下命

3、令:count current:當前活動用戶數(shù)count all:顯示系統(tǒng)訪客總數(shù)list:顯示當前在線的所有用戶的用戶名kill username:強制刪除某個用戶。quit:關(guān)閉ftp服務器軟件。實驗要求(續(xù))4服務器其他功能:對用戶錯誤輸入提供容錯保護,即當用戶輸入錯誤命令時,需向客戶端返回出錯提示信息??蛇x功能(加分):在服務器端為訪問頻率最高的文件建立緩沖區(qū)(可采用共享內(nèi)存技術(shù)),以便提高服務端的性能。實現(xiàn)斷點續(xù)傳功能。實驗要求(續(xù))5客戶端登錄管理:客戶端在shell中輸入:my登錄。若通過身份驗證,服務器將向客戶回顯you are client #.(#為第幾位用戶)并顯示ftp

4、命令輸入提示符myftp;否則顯示username doesnt exist or password is error!。文件操作命令。在客戶端執(zhí)行基本文件操作:創(chuàng)建/刪除目錄(lmkdir/lrmdir)、顯示當前路徑(lpwd)、切換目錄(lcd)、查看當前目錄下的所有文件(dir)、上傳單個/多個文件(put/mput)、下載單個/多個文件(get/mget)。退出系統(tǒng)。用戶執(zhí)行“quit”斷開連接,結(jié)束當前會話實驗要求(續(xù))6文件傳輸TCP/IP協(xié)議進行數(shù)據(jù)傳輸,使用Socket套接字對TCP/IP進行了封裝,可以使用特定的參數(shù)調(diào)用socket??蛻舳伺c服務器端的通信問題包括兩個方面:

5、文件的傳輸和命令的傳輸,這兩種傳輸可以通過一個tcp連接進行,這樣在傳輸文件時,用戶不能向服務器發(fā)送命令,同時需要在命令流中識別文件傳輸?shù)拈_始與結(jié)束的位置;也可以用兩個tcp連接,一個用于命令傳輸,一個用于文件傳輸。解題思路7文件的格式問題ftp傳輸?shù)拇疟P文件一般存在兩種模式:二進制和ASCII二進制文件:如可執(zhí)行程序,位圖文件,該類型文件按原始內(nèi)容傳輸即可。ASCII文件:操作系統(tǒng)讀取時每次都是讀取一行,Windows中為rn,在linux中為n,所以對ascii格式的文件傳輸需要考慮換行符的轉(zhuǎn)換問題,因為客戶端的操作系統(tǒng)和服務器的操作系統(tǒng)可能不同,在ftp中使用ascii傳輸模式傳輸asc

6、ii文件。解題思路(續(xù))8斷點續(xù)傳問題下載文件時,客戶端可以告訴服務器要下載的文件名及相應的文件偏移量(初始為0)這樣服務器可以從文件偏移量處開始傳輸文件,在上傳文件的相應文件偏移量由服務器提供給客戶端下載文件的斷點信息在客戶端保存,上傳文件的斷點信息在服務器端保存。解題思路(續(xù))9用戶管理問題用戶在登陸ftp時需要提供用戶名和密碼,當然ftp服務器也可以允許匿名用戶的登陸。對于不同的目錄,不同的用戶id應該具有不同的權(quán)限,這些權(quán)限的設(shè)定可以參考linux內(nèi)核對文件系統(tǒng)的訪問控制。思路a)在服務器端維護一個用戶與目錄的關(guān)聯(lián)矩陣,x/y坐標軸分別由用戶id和目錄或文件標定,(x,y)項中存儲訪問

7、權(quán)限(r/w),當某個用戶要對某個目錄或文件進行操作時,服務進程首先要查找關(guān)聯(lián)矩陣以確認該用戶是否具有相應權(quán)限;解題思路(續(xù))10 思路b)由于在linux內(nèi)核中實現(xiàn)了用戶對文件系統(tǒng)的訪問控制(基于用戶id和用戶組id),因此可以考慮把ftp用戶id的概念等同于linux系統(tǒng)的用戶id的概念,把為某個ftp用戶服務的進程的所屬用戶id和所屬組id設(shè)定為該用戶的用戶id和組id,這樣在當該進程要執(zhí)行任何訪問文件系統(tǒng)的操作時,linux內(nèi)核會檢測權(quán)限問題。解題思路(續(xù))11多進程和多線程問題多線程可以共享同一個用戶空間,這樣可以創(chuàng)建一個全局的文件緩沖區(qū),在這個文件緩沖區(qū)中存放有經(jīng)常被訪問的文件信息,這樣可以提高服務器端的性能,但是在使用多線程編程時需要程序員自己控制對共享資源的并發(fā)控制。在多進程編程中,進程間可以通過傳統(tǒng)的IPC(管道,共享內(nèi)存等)機制進行通信,這樣也可以維護一個全局的文件緩沖區(qū),同時使用多進程編程可以方便的使用linux內(nèi)核機制來解決用戶管理問題具體采用哪種方式同學們可以多加權(quán)衡,多加思考解題思路(續(xù))12作業(yè)提交要求將客戶端源碼和服

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論