zoukankan      html  css  js  c++  java
  • 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行

  • 相关阅读:
    EOJ 1822 Hanoi Tower IV
    Firefox,chrome,IE上传图片预览
    js保存,获取,删除cookie的操作
    jquery 特效
    SimpleDateFormat转换时间,12,24时间格式[转]
    javascript捕获页面窗口关闭事件
    [转]ajQuery的deferred对象详解
    iframe
    火狐路径问题
    JAVA折腾微信公众平台(Token验证)[转]
  • 原文地址:https://www.cnblogs.com/CodeForWorld/p/13266721.html
Copyright © 2011-2022 走看看