元类

因为python中一切皆对象,类也是对象,元类构造类,类是由元类实例化得到。

type 在python中是最顶层的类,虽有继承了type的类都叫做元类。

在python中所有的类都继承自object,(type也继承自object), 但是object类是由type创作的,其中type类也是有type创造的。

class Person(metaclass= 我自定义的元类)

__call__方法的应用

class Mymeta(type): def __call__(self): pass def __call__(self, *args, **kwargs): obj = object.__new__(self) obj

 

网络编程

1、

C/S 和B/S架构

C: client : 客户端, S: server:服务端 。

B:browser :如 浏览器, S: server ,服务端 。

b/s 结构本身也属于cs

学习网络编程的目的是为了cs结构的软件

C端-------网络-------S端

 

S端(服务端):

1、有固定的ip

2、稳定且一直运行,主持并发

网络

网络:网络连接介质和网络协议(osi七层协议:物理层,数据链路层,网络层,传输层,(会话层,表示层,应用层))。

五层协议是指将会话层,表示层和应用程序统称为应用程序。

物理层

表示电信号,是用高低电频发出,010101

数据链路层

把物理层的电信号分组,每一组叫一个数据报或者叫数据帧,每一数据帧都分成:报头head和数据data两部分

数据报

每一个报头都固定为18个字节,6:发送者地址,6:接收者地址,6:数据类型

Mac地址

发送者,接受者地址都是Mac地址

每块网卡都有一个唯一的mac地址(12位16进制表示,前六位表示厂商编号,后六位是流水线号)

广播

同一个局域网内通信,会出现广播风暴

网络层

ip 现在主要是用的是ipv4,在0.0.0.0到255.255.255.255这个范围内。因为数量有限不能表示出所有的网络设备,所以出现了ipv6.

子网掩码:可以通过子网掩码和ip判断两个ip是不是处于同一个网段内。ip和子网掩码是按照按位与运算运算。

ip 和Mac有转换关系

主机 172.16.10.10/24访问172.16.10.11/24

ARP协议:广播的方式发送数据包,获取主机的Mac地址学习:Mac地址和ip地址映射表

第一次接收到就会在ip/mac映射表中添加一条数据

任何一中协议都有头和内容

 

传输层

tcp协议

三次握手,四次挥手

 

 

服务器端(本机)

 import socket
 
 soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 
 soc.bind(('192.168.11.251', 8080))
 
 soc.listen(10)
 
 print('你好')
 conn, addr = soc.accept()
 print('hello')
 print(addr)
 data = conn.recv(1024)
 print('接收到信息', addr)
 
 conn.send(b'amaa')
 conn.close()
 soc.close()

客户端(本机)

 import socketsoc = socket.socket()soc.connect(('192.168.11.251', 8080))soc.send(b'aaa')data = soc.recv(1024)print('收到服务端回信', data)soc.close()
posted on 2019-09-05 19:48  luelue  阅读(155)  评论(0编辑  收藏  举报