day31

元类

因为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<br></br> ​<br></br> soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)<br></br> ​<br></br> soc.bind(('192.168.11.251', 8080))<br></br> ​<br></br> soc.listen(10)<br></br> ​<br></br> print('你好')<br></br> conn, addr = soc.accept()<br></br> print('hello')<br></br> print(addr)<br></br> data = conn.recv(1024)<br></br> print('接收到信息', addr)<br></br> ​<br></br> conn.send(b'amaa')<br></br> conn.close()<br></br> 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()

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。