ftp實現終端start,並且反射型命令分發
阿新 • • 發佈:2018-05-24
CP style pen socket pro name help ftps ons
ftp_client文件夾下的ftp_client.py:
import socket sk=socket.socket() sk.connect((‘127.0.0.1‘,8000))
ftp server文件夾下的:
1 bin文件夾下ftp_server。py:bin作為啟動文件夾
#bin文件夾下 作為 啟動頁面,執行core文件夾下main #當前py文件的文件夾作為第一目錄,所以不能選core,因為bin下沒有core #from core import main#從文件夾導入py文件 import os,sys PATH=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(PATH) from core import main if __name__ == ‘__main__‘: main.ArgvHandler()
2 conf文件夾下settings.py:conf作為配置文件夾
IP=‘127.0.0.1‘ PORT=8000
3 core文件夾下:3.1 main.py:
import socketserver import optparse#optparse解析命令行命令 from conf import settings from core import server#與server在同一文件夾下,但也要這樣導入class ArgvHandler(): def __init__(self):#類先寫初始化 #要連接先考慮ip地址和端口 self.op=optparse.OptionParser() options,args=self.op.parse_args() self.verify_args(options,args) def verify_args(self,options,args): cmd=args[0] #命令分發:1.if cmd==‘start‘ #2.字典 # 3.反射 if hasattr(self,cmd): func=getattr(self,cmd) func() def start(self): print(‘the server is working‘) s=socketserver.ThreadingTCPServer((settings.IP,settings.PORT),server.ServerHandler) s.serve_forever() def help(self): pass
core文件夾下:3.2 server.py
import socketserver class ServerHandler(socketserver.BaseRequestHandler): def handle(self): print(‘ok‘)
代碼執行方式:終端輸入語句:先cd進入ftpserver 下的bin文件夾 然後輸入語句python ftp_server.py start
(venv) C:\Users\hound\PycharmProjects\test\ftp server\bin>
(venv) C:\Users\hound\PycharmProjects\test\ftp server\bin>python ftp_server.py start
the server is working
ok
ftp實現終端start,並且反射型命令分發