麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Python > 正文

python 實現簡單的FTP程序

2024-09-09 19:03:28
字體:
來源:轉載
供稿:網友

FTP即文件傳輸協議;它基于客戶機-服務器模型體系結構,應用廣泛。它有兩個通道:一個命令通道和一個數據通道。命令通道用于控制通信,數據通道用于文件的實際傳輸。使用FTP可以做很多事情,比如移動、下載、復制文件等。

一、開發環境

server端:centos 7  python-3.6.2

客戶端:Windows 7 python-3.6.2 pycharm-2018

程序目的:1、學習使用socketserver實現并發處理多個客戶端。

             2、了解使用struct解決TCP粘包。

二、程序設計

(本人菜鳥一枚,對于開發規范,接口設計完全不懂,完全是隨心所欲,自娛自樂。寫博客主要是記錄自己學習的點點滴滴,如有不足之處還請見諒。)

1、server端

1.1 目錄結構如下:

 1.2 目錄簡介:

FTP_SERVER:程序主目錄

app:程序主邏輯目錄,目錄下有四個模塊:

          FTPserver.py:FTP  Server端啟動入口。

          login.py:認證注冊模塊,用于處理用戶注冊,登錄認證。

          dataAnalysis.py:命令解析模塊,負責解析,執行客戶端命令。

          FileOpertion.py:負責文件讀,寫。數據發送,數據接收。

db:存放user_pwd.db文件,用于存放用戶信息(用戶名,密碼,FTP目錄總空間,已使用空間等)

lib:存放公共數據。

1.3 模塊中類的繼承關系

1.4 執行流程

1.4.1 程序啟動文件FTPserver.py,程序啟動后進入監聽狀態。核心代碼如下:

class MyFtpServer(socketserver.BaseRequestHandler):  def handle(self): # 重寫handle方法,處理socket請求 print(f"連接來自{self.client_address}的客戶端") commom_obj = Commom() data_analy = DataAnalysis() login_obj = Login() while 1: # 執行用戶選項:1、登陸系統 2、注冊賬號。并返回一個結果 status_id = login_obj.run_client_choice(self.request, commom_obj) if status_id == "01": # 登陸成功 if not self.run_ftp_server(data_analy,commom_obj): # 執行ftpserver主功能  break elif int(status_id) == -1: # client斷開連接了 break print(f"客戶端{self.client_address}斷開了連接") def run_ftp_server(self,data_analy,commom_obj): """" 登陸成功后,接收客戶端發來的命令,并進行處理 :param data_analy:負責解析,執行客戶端命令的對象 :param commom_obj:程序執行時所需的數據對象 :return 返回false代表客戶端斷開連接了 """ while True: try: cmd_len_pack = self.request.recv(4)  cmd_len = struct.unpack('i',cmd_len_pack)[0] # 獲取命令長度,防止粘包  except Exception: break recv_data = self.request.recv(cmd_len).decode('utf-8') # 接收客戶端數據 if recv_data.upper() == "Q": # 客戶端提出斷開連接了 break # 解析,處理客戶端的命令 data_analy.syntax_analysis(recv_data, self.request, commom_obj) return Falseif __name__ == '__main__': print('運行FTP服務') ip_port = ('192.168.10.10',9000) # 創建并發服務端對象 server = socketserver.ThreadingTCPServer(ip_port, MyFtpServer) # 開啟服務 server.serve_forever()
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人免费看片a | 日本在线观看高清完整版 | 色污视频| 黄色免费高清网站 | 全免费午夜一级毛片真人 | 国产精品1区,2区,3区 | 国产日韩免费观看 | 国产色视频免费 | av免费在线播放网址 | 成人在线免费观看小视频 | 91精品国产91 | 精品在线一区二区三区 | 免费久久久久 | 成人毛片免费视频 | 欧美成年私人网站 | 韩国精品一区二区三区四区五区 | 成人在线网站 | 色七七亚洲 | 中国美女一级黄色大片 | 成人免费毛片一 | 老师你怎么会在这第2季出现 | 一区二区三区欧美日韩 | av电影在线观看网址 | 欧美成人午夜一区二区三区 | 羞羞答答影院 | 亚洲一区二区三区精品在线观看 | www.精品久久 | 九九精品在线观看视频 | 91看片淫黄大片欧美看国产片 | 成人免费福利视频 | 国产精品一区二区羞羞答答 | 久久精品久久精品久久精品 | 成人毛片av在线 | 成人爱爱电影 | 曰批全过程120分钟免费69 | 欧美精品v国产精品v日韩精品 | www.成人在线| 91羞羞 | 国产精选电影免费在线观看 | 久久久久九九九女人毛片 | 免费播放av |