2020.5.2 复习Socket

发布于 2020-05-02  12 次阅读


1.复习内容

  • TCP沾包

    • 每次发送,都经过缓冲区,多次发送,被缓存区一次传输,所以造成了多次消息,变成一条发送,
      • 人为添加消息边界 1&2&3
      • 控制收发的速度 sleep
  • Socket模块方法

    • 【1】 gethostname() 获取计算机名
    • 【2】 gethostbyname('www.baidu.com') 获取主机ip地址
    • 【3】 getservbyname('mysql') 获取服务端口号
    • 【4】 getservbyport(3306) 获取端口对应服务
    • 【5】 inet_aton('192.168.1.2') 将IP转换为bytes子串
    • 【6】 inet_ntoa(b'\xc0\xa8\x01\x02') 将bytes子串转换为IP地址
  • 套接字对象属性

    • 【1】 sockfd.type 套接字类型
    • 【2】 sockfd.family 套接字地址类型
    • 【3】 sockfd.getsockname() 获取套接字绑定地址
    • 【4】 sockfd.fileno() 获取套接字的文件描述符
    • 【5】 sockfd.getpeername() 获取连接套接字客户端地址
    • 【6】 sockfd.setsockopt(level,option,value)
      • 功能:设置套接字选项
      • 参数: level 选项类别 SOL_SOCKET
      • option 具体选项内容
      • value 选项值
    • 【7】 sockfd.getsockopt(level,option)
      功能 : 获取套接字选项值
  • 套接字创建注意点

    • TCP套接字是SOCKET_STREAM
    • UDP套接字是SOCKET_DGRAM
    • IPV4:AF_INET
  • struct模块的使用

    • 原理: 将一组简单数据进行打包,转换为bytes格式发送。或者将一组bytes格式数据,进行解析。
    • Struct(fmt)

      • 功能: 生成结构化对象
      • 参数:fmt 定制的数据结构
    • st.pack(v1,v2,v3....)

      • 功能: 将一组数据按照指定格式打包转换为bytes
      • 参数:要打包的数据
      • 返回值: bytes字节串
    • st.unpack(bytes_data)

      • 功能: 将bytes字节串按照指定的格式解析
      • 参数: 要解析的字节串
      • 返回值: 解析后的内容
    • struct.pack(fmt,v1,v2,v3...)

    • struct.unpack(fmt,bytes_data)

    • https://blog.csdn.net/qq_30638831/article/details/80421019

2.灵感代办

3.学习内容

  • 搬砖 ,耽误一天

4.扩展延伸知识

5.知识内容个人梳理

6.今天都复习了之前的什么内容


Ares个人进阶之路