• 元类与网络编程


    元类

    因为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()
  • 相关阅读:
    CSwinform程序分页
    C#跨线程访问控件
    CS程序发布版本后提示自动升级功能
    winform控件的二次开发
    JavaNetty拆包粘包(二)
    JavaNetty(一)
    JavaAIO编程
    javaNIO编程
    Java中bio编程
    如何使用CryptoJS配合Java进行AES加密和解密
  • 原文地址:https://www.cnblogs.com/zfb123-/p/11469232.html
Copyright © 2020-2023  润新知