FTP之参数解析与命令分发第一步

接上篇文章

ftp_server.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()

settings.py

IP= "127.0.0.1"
PORT = 8080

main.py

import optparse  #解析命令行命令的
import socketserver

from conf import settings
from core import server


class ArgvHandler():
    def __init__(self):
        self.op = optparse.OptionParser()
        # self.op.add_option("-s","--s",dest="server")
        # self.op.add_option("-P", "--port", dest="port")
        options,args = self.op.parse_args() #参数解析

        self.verify_args(options,args)


    def verify_args(self,options,args):
        cmd = args[0]

        #  类下是否有cmd方法
        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()

server.py

import socketserver
import json
class ServerHandler(socketserver.BaseRequestHandler):

    def handle(self):
        print("ok")

ftp_client

import socket
sk = socket.socket()
sk.connect(("127.0.0.1",8080))
FTP之参数解析与命令分发第一步_第1张图片
image.png

先运行ftp_server.py文件,然后云讯ftp_client文件,得到上面的结果

你可能感兴趣的:(FTP之参数解析与命令分发第一步)