目錄
5.源代碼
開發語言:C++
開發環境:Ubuntu、QT/C++
1.設計要求
利用Linux環境下Socket API實現FTP模擬系統,該系統分爲服務器和客戶端兩部分,服務端接受客戶端連接請求,當接受請求後建立一個服務器分線程,並新建新的Socket連接處理文件傳輸工作。
客戶端提供FTP服務器連接請求,並提供FTP命令相關功能。完成文件在客戶端和服務端的傳送。將源文件複製到目的目錄,服務端和客戶端都可以作爲源文件端,實現FTP的下載與上傳,如果文件存在則覆蓋原始文件。
2.系統需求分析
2.1系統整體需求分析
(1)具有簡潔、易操作的交互界面;
(2)對於用戶的合法操作能夠進行正確處理,呈現出正確直觀的反饋;
(3)對於非法操作,系統能夠做出判斷,並向用戶反饋錯誤提示;
(4)能夠適應不同流量的訪問;
(5)能夠滿足用戶訪問不同服務器的需求。
2.1系統功能需求分析
1)客戶端功能需求分析
- 用戶註冊、登錄、註銷;
- 文件下載、下載目錄修改、下載進度條;
- 文件上傳;
- 文件(夾)瀏覽;
- 用戶幫助。
2)服務器功能需求分析
- 服務器啓動;
- 服務器關閉;
- 文件管理(刪除、重命名、移動、複製、編輯等);
- 用戶管理(刪除用戶);
- 響應客戶端的請求。
3.系統設計
3.1系統結構設計
開發FTP客戶端/服務器軟件必須遵循FTP的工作模式,FTP的獨特優勢在於它在兩臺通信主機之間使用了兩條TCP連接,一條用於數據傳送,一條用於控制信息的傳送。這種將命令和數據分開傳送的思想大大提高FTP工作的效率
3.2客戶端系統功能設計
1)用戶註冊
用戶註冊時,輸入用戶名和密碼。用戶名和密碼保存在文件中。用戶名不可重複。
2)登錄與註銷
登錄時,用戶可以選擇實名登錄或者匿名登錄(即遊客模式)。不同的登錄方式,顯示不同的功能權限,增加了服務器的安全性。匿名用戶只能下載服務器上的文件。註銷將斷開客戶端與服務器的連接,使所有功能不可用。
3)文件下載
用戶單擊文件,系統提供下載的目的路徑,用戶選擇路徑,單擊“確定”,系統開始下載,下載過程中,進度條顯示下載進度。
4)文件上傳
用戶上傳文件時,打開本地資源管理器,選擇所要上傳的文件,即可進行上傳。用戶上傳的文件統一上傳至唯一指定的目的文件夾。
5)文件瀏覽
用戶單擊“瀏覽”,系統顯示出FTP文件庫中的文件夾及文件,單擊文件夾,進入文件夾內部;單擊文件,會出現“下載”按鈕、“取消”按鈕及修改下載目錄的按鈕。
4)用戶幫助
單擊“幫助”,顯示各按鈕的作用。
3.3服務器系統功能設計
1)服務器啓動
單擊服務器“啓動”按鈕,可以啓動服務器,使其進入監聽狀態。服務器創建一個空的套接字,將空套接字和本機IP地址和端口號綁定,之後成爲一個三元組,指定一個socket爲監聽接口,使socket可以接收網絡連接請求。
2)服務器關閉
關閉服務器,服務器停止監聽,並且關閉操作窗口。
3)文件管理
文件管理包括文件刪除、文件重命名、文件移動、文件編輯等。單擊“文件管理”,系統跳轉值FTP文件庫的資源管理器中,供管理員進行管理操作。
4)用戶管理
用戶管理主要功能爲刪除用戶。
4.系統實現
4.1客戶端實現
1)連接服務器
用戶進入系統時,需要填寫IP地址以作爲連接服務器,同一IP下有三個以端口區分的服務器來滿足大流量訪問的壓力。用戶也可以選擇“匿名登錄”。
圖4-1客戶端連接服務器界面
2)用戶登錄
用戶登錄時,需填寫正確的“賬號”、“密碼”,若填寫錯誤,系統將進行錯誤反饋。
圖4-2 用戶登錄界面
3)用戶註冊
用戶註冊時,需填寫“用戶名”、“密碼”、“確認密碼”。用戶名與已註冊用戶不能重複,密碼與重複密碼必須一致。
圖4-3 用戶註冊界面
4)遊客模式
用戶登錄系統時,選擇匿名登錄,即進入“遊客模式”。該模式下,用戶僅具有“瀏覽”和“下載”功能的權限。
圖4-4 遊客操作界面
5)用戶模式
用戶登錄系統時,用戶選擇服務器登錄,輸入賬號及密碼,登錄成功後,進入用戶模式,該模式下,用戶擁有“瀏覽”、“下載”、“上傳”等功能。
圖4-5 普通用戶登錄界面
6)瀏覽文件
用戶瀏覽文件時,系統左側顯示文件夾,右側顯示文件。單擊文件夾,進入該文件內層;單擊文件,可以選擇進行下載。
圖4-6 瀏覽文件界面
7)下載文件
文件下載的原理就是在本地新建同名文件並在數據通道接收數據,然後將數據寫入文件。客戶端文件下載的過程如下:
選中需要下載的文件,點擊“下載”按鈕,觸發函數,調用read()函數將數據讀入緩衝區中,然後在的調用write()函數從緩衝區中讀出數據,寫入指定目錄的指定文件中。
下載時,可以修改目錄,將文件下載至指定目錄下。
圖4-7 下載文件界面
8)上傳文件
文件上傳的原理是讀取本地文件數據,將數據通過數據通道發送給服務器,服務器再將數據寫入遠程文件。客戶端上傳文件,先選中需要上傳的文件,單擊“上傳”按鈕,觸發函數,進度條顯示上傳進度。
圖4-8上傳文件界面
4.2服務器實現
1)文件管理
服務器進行文件管理時,進入資源管理器,可以對文件夾及文件進行“移動”、“複製”、“重命名”、“刪除”等操作。
圖4-9 文件管理界面
2)用戶管理
服務器端對用戶的管理,僅設置“用戶刪除”功能。
圖4-10 用戶管理界面
3)響應請求
服務器對客戶端的請求的響應處理,是系統的核心,是系統能正常工作的基礎。服務器對用戶的“登錄”、“註冊”、“退出”、“瀏覽”、“幫助”、“上傳”、“下載”等功能進行響應的處理反饋。
圖4-11服務器響應界面
5.源代碼
鏈接:https://pan.baidu.com/s/1-1v_6X3-Q11j-DRu9ts2FA
提取碼:nvkz