zoukankan      html  css  js  c++  java
  • day22 ftp传输作业未完成

    class MyFtpTcpSever:
    
            POST = 8686
            flie_Path =r'W_26/day3(scoket拓展)/downlode_file/01 python  fullstack 开班介绍 part1.mp4'
            downlode_path = r'W_26/day3(scoket拓展)/文件传输'
            socket_family = AF_INET
            socket_type = SOCK_STREAM
            coding = 'utf-8'
            request_queue_size = 5
            allow_reuse_address = False
            max_packet_size = 8192
    
            def __init__(self, server_address,bind_and_activate=True):
                """Initializer  May be extended, do not override"""
                self.server_address =server_address
                self.server_socket = socket(self.socket_family,self.socket_type)
                if bind_and_activate:
                    try:
                        self.server_bine()
                        self.listen()
                    except:
                        print('connect false')
                    print('copnnect successful')
    
    
            def server_bine(self):
                '''套接字绑定ip地址'''
                self.server_socket.bind(self.server_address)
                self.server_address = self.server_socket.getsockname()
    
    
    
            def sever_listen(self):
                """激活套接字监听"""
                self.server_socket.listen(self.request_queue_size)
                return
    
    
            def sever_close(self):
                '''回收资源'''
                self.server_socket.close()
    
            def sever_requset(self):
                '''接收请求'''
                return self.server_socket.accept()
    
    
            def send_hand_len(self,hand_data):
                """第一次 发送标头长度标头"""
                hand = struct.pack('i',len(hand_data))
                self.server_socket.send(hand)
    
            def send_hand(self,operat):
                self.file_name = os.path.basename(self.flie_Path)
                self.file_size = os.path.getsize(self.flie_Path)
                hand={
                    'file name' : self.file_name,
                    'file size' : self.file_size,
                    'cmd' : operat
                }
    
            def pras_cmd(self,cmd = b"sadd"):
                """解析命令行"""
                args = cmd.decode('utf-8').split()
                return args
    
            def sever_downlode(self,args):
                cmd = args[0]
                file_name = args[1]
                file_path = os.path.join(self.downlode_path,file_name)
                with open(file_path,'rb') as f:
                    for line in f:
                        self.server_socket.send(line)
    
            def run(self):
                while True:
                    pass
  • 相关阅读:
    Integer to Roman leetcode java
    Reverse Integer leetcode java
    Binary Tree Maximum Path Sum leetcode java
    公司来了一个奇葩需求pppoe client+server+EOIP+vlan
    魔兽数据库-自然
    windows默认dns解析走ipv4而不走ipv6
    ROS支持BCP桥接(基于PPP隧道)
    几款比较好用的电动理发器推荐
    centos 拨号pptp在拨号成功和拨号失败的时候脚本处理!!!非常重要
    ros routeros 脚本命令script
  • 原文地址:https://www.cnblogs.com/lee1225/p/12686929.html
Copyright © 2011-2022 走看看