【python練習】基於socket的FTP程序(僅支持單用戶)
阿新 • • 發佈:2018-08-29
查看 切換目錄 md5加密 查看當前目錄 傳輸 conf 存儲 settings ces
程序功能:
本程序模擬實現了一個FTP程序:
1.程序分為客戶端和服務端
2.用戶可以登錄和註冊賬號,登錄密碼有MD5加密
3.每個用戶有自己的家目錄 ,且只能訪問自己的家目錄
4.用戶可以隨意切換目錄(僅限自己的家目錄)
5.允許用戶查看當前目錄下文件
6.允許上傳和下載文件,保證文件一致性(md5),(不允許下載/上傳文件夾,會出現不可恢復bug,用戶配置文件需要重置。時間原因沒有加判斷)
7.文件傳輸過程中顯示進度條
8.支持文件上傳、下載的斷點續傳
測試:
數據為空,需要手動創建添加 1.需要自行註冊賬號 2.本地上傳的文件,應放在client\db\用戶名\uploads中 3.下載的文件會自動存儲在client\db\用戶名\downloas中 4.不能下載/上傳文件夾,會出現不可恢復bug
程序結構:
FTP/
└── ├── README
├── client # 客戶端程序目錄
└── server # 服務端程序目錄
FTP/client/ └── ├── conf # 配置文件 │ ├── init.py │ └── settings.py ├── core # 主要程序邏輯都 │ ├── init.py │ ├── login.py # 登陸模塊 │ ├── main.py # 主邏輯交互程序 │ └── register.py # 註冊模塊 ├── db #用戶數據存儲的地方 │ └── disk # 存放各用戶上傳\下載文件 │ ├── 用戶名文件1 # 用戶名文件 │ │ ├── downloads # 下載的文件存放目錄 │ │ └── uploads # 需要上傳的文件目錄 │ └── 用戶名文件2 # 用戶名文件 │ ├── downloads # 下載的文件存放目錄 │ └── uploads # 需要上傳的文件目錄 └── FTP_client # client端程序主入口
FTP/server/ └── ├── conf # 配置文件 │ ├── init.py │ └── settings.py ├── core # 主要程序邏輯都 │ ├── init.py │ ├── logger.py # 日誌記錄模塊 │ ├── login.py # 登陸模塊 │ ├── main.py # 主邏輯交互程序 │ └── register.py # 註冊模塊 ├── db #用戶數據存儲的地方 │ ├── accounts.ini # 用戶配置文件,存放賬號、密碼(MD5) │ └── disk # 存放各用戶上傳\下載文件 │ ├── 用戶名文件1 # 用戶名文件 │ │ ├── downloads # 下載的文件存放目錄 │ │ └── uploads # 需要上傳的文件目錄 │ └── 用戶名文件2 # 用戶名文件 │ ├── downloads # 下載的文件存放目錄 │ └── uploads # 需要上傳的文件目錄 └── logs #日誌目錄 │ ├── init.py │ └── access.log #用戶訪問和操作的相關日誌 └── FTP_server # server端程序主入口
【python練習】基於socket的FTP程序(僅支持單用戶)