python-网络编程

网络编程

相关概念

  • OSI七层模型:开放系统互连参考模型。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

  • TCP/IP:在OSI七层模型的基础上简化抽象出来的一套网络协议簇,现在得到了广泛使用。

  • TCP:传输控制协议

    • 有连接的,数据是安全有保障的

    • 传输的速度稍慢,三次握手、四次挥手、数据检查

  • UDP:用户数据报协议

    • 无连接的,数据是不可靠的

    • 传输的速度比较快

  • IP地址:唯一的一台计算标识

    • 查看:ipconfig

  • ping:检查网络连通性

    • 使用:ping IP/域名

  • 端口号:每个应用可以拥有唯一的端口号

    • 范围:0~65535

    • 系统:0~1024,常用的应用所占用

      • http:80

      • https:443

      • smtp:25

      • ftp:21

      • ssh:22

      • mysql:3306

      • redis:6379

    • 自己:大于1024

  • 网络编程核心:

    • IP + 端口

    • 库:socket

TCP协议

  • 说明:面向连接、数据可靠(校验重发)、三次握手、四次挥手、传输速度较慢

  • 原理:见tcp.png

  • 示例:见01-tcp-http.py

  • TCP协议的服务器与客户端:见02-tcp-server.py03-tcp-client.py

UDP协议

  • 说明:面向无连接的、数据不可靠、传输速度较快,适应于对数据要求不严格的情况

  • 原理:见udp.png

  • 示例:模拟飞秋发送数据,见04-udp-feiqiu.py

  • UDP协议的服务器与客户端:见05-udp-server.y06-udp-client.py

StringIO与BytesIO

  • 说明:这些类型的对象可以与open返回的对象一样操作,但是操作的内存中的数据

  • 方法:getvalue用于获取所有数据

原文地址:https://www.cnblogs.com/jinxp/p/9244269.html