码迷,mamicode.com
首页 > 其他好文 > 详细

第三模块--不会的知识点整理

时间:2018-09-23 13:51:02      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:--   网络   elf   制作   固定   包括   设计   大小   客户端   

1、继承的实现原理:深度优先,广度优先

print(F.__mro__)

2、组合指,在一个类中以另外一个类的对象作为数据属性

3、抽象类:从一堆类中抽取相同的内容而来的,包括数据属性和函数属性,只能被继承,不能被实例化,------归一化设计

import abc
class All_file(metauclass=abc.ABCmeta):
    all_file=file
    @abc.abctractmethod
    def read(self):
        pass

4、封装的概念

5、多次序列化到文件,读取出来是怎么样

6、instance(obj,cls)检查是否obj是类cls的对象

7、反射的概念

8、元类的概念

9、网络编程中解决粘包问题的两种形式:

9.1、远程执行服务端系统命令:

(1)引入subprocess模块与系统交互---引入管道的知识

(2)引入struct模块,先发报头的长度,再发报头(客户端根据接受完整的报头得到里面存储的文件长度)

 obj = subprocess.Popen(cmd.decode(‘utf-8‘), shell=True,
                                   stdout=subprocess.PIPE,
                                   stderr=subprocess.PIPE)

            stdout=obj.stdout.read()  # 字节类型
            stderr=obj.stderr.read()  # 字节类型

#3、把命令的结果返回给客户端 #第一步:制作固定长度的报头 header_dic={ ‘filename‘:‘a.txt‘, ‘md5‘:‘xxdxxx‘, ‘total_size‘: len(stdout) + len(stderr) # 字节的长度 -------- 文件的大小 } header_json=json.dumps(header_dic) header_bytes=header_json.encode(‘utf-8‘) #第二步:先发送报头的长度 conn.send(struct.pack(‘i‘,len(header_bytes))) # len(header_bytes)发送信息给客户端的字节长度 #第三步:再发报头 conn.send(header_bytes) # 客户端发两次 #第四步:再发送真实的数据 conn.send(stdout) conn.send(stderr)

 可以直接打包 发送数据的长度-----客户端解压依次即可

也可以间接发送数据的长度  先发head_dic报头长度,再发报头,,客户端解压报头  得到报头里面的数据长度

9.2、上传下载文件os.path.getsize(pt_path),文件的大小--字节的长度 --<class ‘int‘>

file_size = os.path.getsize(pt_path)
print(file_size,type(file_size))
290 <class ‘int‘>

技术分享图片

 

技术分享图片

 



 

第三模块--不会的知识点整理

标签:--   网络   elf   制作   固定   包括   设计   大小   客户端   

原文地址:https://www.cnblogs.com/foremostxl/p/9692324.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!