zoukankan      html  css  js  c++  java
  • day08 笔记

    静态方法
        与类无关,不能访问类里的任何属性和方法
    类方法
        只能访问类变量
    属性@property
        把一个方法变成一个静态属性,
        flight.status
        @status.setter
        flight.status = 3
        @status.delter
    反射
        getattr(obj,str)
        setattr(obj,str,val)
        hasattr(obj,str)
        delattr(obj,str)
    
    __new__
    class Foo(object):
        def __call__()
            print"call"
    
    Foo()() #执行call方法
    
    __metaclass__ 用来定义这个类以怎样的形式被创建
    
    try
        ...
    except (ValueError,KeyError),e  #in 2.7
    except (ValueError,KeyError) as e : 3.x
    
    except Exception as e:放在异常处理最后面,
    
    else: #没发生异常,就执行
    
    finally, 无论如何都执行
    
    raise ValueError
    
    断言
    assert type(obj.name) is int
    print(obj.name /2)
    
    socket
        tcp/ip  send, recv
        udp
    
        family address
            AF.INET  ipv4
            AF.INET6
            AF.UNIX  。local
        socket protocol type
            sock.SOCK_STREAM  tcp/ip
            socket.SOCK_DGRAM   数据报式socket , for UDP
    
    
        服务端
        server = socket.socket(AF.INET,sock.SOCK_STREAM)
        server.bind(localhost,9999)
        server.listen()
        while True:
            conn,addr = server.accept() #阻塞
            while True:
               print("new conn",addr)
               data = conn.recv(1024) #8192  #recv默认是阻塞的
    
               if not data:
                    break #客户端已断开, conn.recv收到的就都是空数据,
               print(data)
               conn.send(data.upper())
        client
           client = socket.socket()
           client.connect(serverip, 9999 )
           client.send(data)
           client.send(data)
           client.recv(dat)
    
        socket 粘包
    
        ftp server(下载文件)
        1. 读取文件名
        2. 检测文件是否存在
        3. 打开文件
        4. 检测文件大小
        5. 发送文件大小给客户端
        6. 等客户端确认
        7. 开始边读边发数据
        8. 发送md5
    
    
    First, you must create a request handler处理类 class by subclassing the BaseRequestHandler class and overriding覆盖 its handle() method; this method will process incoming requests.   
    你必须自己创建一个请求处理类,并且这个类要继承BaseRequestHandler,并且还有重写父亲类里的handle()
    Second, you must instantiate实例化 one of the server classes, passing it the server’s address and the request handler class.
    你必须实例化TCPServer ,并且传递server ip 和 你上面创建的请求处理类 给这个TCPServer
    Then call the handle_request() or serve_forever() method of the server object to process one or many requests.
    server.handle_request() #只处理一个请求
    server.serve_forever() #处理多个一个请求,永远执行
    
    
    Finally, call server_close() to close the socket.
    
    chenronhua
        a
            a1
            a2
        b
        c
    chen: cd a
    cd ..
    
    user_current_dir = "/home/chenronghua"
    user_current_dir = "/home/chenronghua/a/a1"
    
    
    os.chdir
    
    
    作业:开发一个支持多用户在线的FTP程序
    
    要求:
    
        用户加密认证
        允许同时多用户登录
        每个用户有自己的家目录 ,且只能访问自己的家目录
        对用户进行磁盘配额,每个用户的可用空间不同
        允许用户在ftp server上随意切换目录
        允许用户查看当前目录下文件
        允许上传和下载文件,保证文件一致性
        文件传输过程中显示进度条
        附加功能:支持文件的断点续传
    
  • 相关阅读:
    请实现一个js脚本,要求做到将数字转化为千分位表示如:1234567转化为1,234,567
    Linux mlocate安装
    Linux CentOS7网络简单配置
    Linux 常见命令 文件搜索命令
    Linux 常见命令 权限管理命令
    Linux 常见命令 链接命令
    Linux 常见命令 文件处理指令
    List与Set的contains方法效率问题
    集合介绍
    Arrays.asList()
  • 原文地址:https://www.cnblogs.com/netflix/p/14855268.html
Copyright © 2011-2022 走看看