• python28day


    内容回顾

    classmethod:

    • 用不到对象,并且要用类名的时候
    • 装饰一个方法,被装饰的方法会变成类方法

    staticmethod:

    • 把一个函数放到类里,变成一个静态方法
    • 这个方法既用不到对象,也用不到类

    魔术方法:

    • new
    • call
    • len
    • str
    • repr

    今日内容

    到网络编程啦!!哈哈哈

    • 网络的概念

      • 唯一标识:比如身份证号
      • 临时编号:比如学号
      • 不变的:mac地址,唯一标识你的机器
        • 17-8F-9A- 生产的网卡都是唯一的标识

      • 变化的:ip地址 更好的更方便的找到你的机器
    • 局域网的概念

      • 几台机器通讯
      • 交换机的出现
      • 把信息发给交换机,交换机进行转发。
      • 注:交换机只认识mac地址,用ip找到了mac地址
      • 用到交换机:广播、单播、组播
    • ARP协议(地址解析协议)

      • 通过一台机器的ip地址获取到mac地址
      • 用到的设备:交换机
      • 功能:广播、单播、组播
    • 路由器

      • 是个交换机
      • image-20200708120414996
      • 网关:
        • 192.168.12.1
      • 网段:
        • 192.168.12.0
      • IP地址
        • ipv4:四位点分十进制
        • 192.168.12.87
        • 0-255
        • 0.0.0.0-255.255.255.255
        • 公网地址:需要我们自己申请购买的地址
        • 内网地址:保留字段
          • 192.168
          • 172.16-172.31
          • 10.0-10.255
        • 特殊ip地址:127.0.0.1 本地回环地址,测试用
        • 查看自己的ip:ipconfig
        • 子网掩码: 也是一个ip地址 用来判断两台机器在不在一个局域网内
          • 子网掩码和ip地址二进制按位与,得到的数就是所在网段
        • ipv6:16进制,甚至可以给地球上每粒沙子分ip地址
    • socket模块

      • import socket
        
        sk=socket.socket()
        sk.bind(('127.0.0.1',9000))
        sk.listen()  #就可以等人来连接了
        
        conn,addr=sk.accept()
        conn.send(b'hello')
        msg=conn.recv(1024)
        print(msg)
        conn.close()
        
        sk.close()
        
        import socket
        
        sk=socket.socket()
        sk.connect(('127.0.0.1',9000))
        
        msg=sk.recv(1024)
        print(msg)
        sk.send(b'byebye')
        
        sk.close()
        
    • a-发消息->b

      • 10101010101
      • 你-->01101010|101011101|10001110
      • ip地址122.112.11.1--->0010001000010010100000101010
      • 端口号8000-->10000100101010101010010100101010
      • 能发,但接收端疯掉了,所有要约定,例如,前32位是xxx,后面是xx,然后是xxxx,这就是协议
    • 7层协议

      • 应用层
      • 表示层
      • 会话层
      • 传输层
      • 网络层
      • 数据链路层
      • 物理层
    • osi5层协议

      • 应用层:python代码 b’hello‘

      • 传输层:预备如何传输?使用的端口? tcp和udp协议

      • 网络层:ip地址b’01010010110‘、ipv4、ipv6、路由器(三层交换机)

      • 数据链路层:mac地址b’1101010010‘、arp协议、二层交换机、网卡

      • 物理层

        传到对面机器之后,倒着读出信息。套接字

    • tcp和udp协议

      • tcp协议:
        • 需要先建立连接,然后才能通信,就像打电话
        • 占用连接、可靠、消息不丢失(有回执)、实时性高、慢
        • 适合:语音聊天、视频聊天、线下高清视频缓存、发邮件
        • 建立连接的过程:三次握手
          • 形成全双工连接
          • 请求连接服务SYN
          • 返回:ACK+SYN
          • 发送:ACK
        • 断开连接的过程:四次挥手
      • udp协议:
        • 不需要先建立连接,就能通信,就像发短信
        • 不占用连接、不可靠(消息因为网络不稳定丢失)
        • 适合:在线播放视频
    • 包的导入补充

      • 看目录导入,如果在一个路径下就能导
      • 导入一个包(文件夹),相当于执行了包下__init__文件
      • 要想导入文件夹下的文件
        • 方式一:import glance.api.policy
        • 方式二:from glance.api import policy
      • from . import xxx表示从当前路径下导入xx,相对导入,但相对导入文件不能直接运行
      • 当需要写一个功能,这个功能不是直接运行的,而是被别人导入后使用的,比如json,这种独立形成文件夹,所有文件都需要使用相对导入

    代码总行数2823+33=2856行

  • 相关阅读:
    设计模式 享元模式(池化技术)
    设计模式 混合模式(整体部分模式)
    设计模式 适配器模式
    Flex3示例、 安装 、注册码
    VS2010错误
    转载:glut.h 与 stdlib.h中 的exit()重定义问题的解决
    宿迁软件QQ群(109233721)
    百度地图 开发API接口啦
    Sublime Text 插件个人使用总结&推荐
    sublime text2 使用安装插件中文乱码问题解决
  • 原文地址:https://www.cnblogs.com/CodeForWorld/p/13266721.html
Copyright © 2020-2023  润新知