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.py
与03-tcp-client.py
UDP协议
-
说明:面向无连接的、数据不可靠、传输速度较快,适应于对数据要求不严格的情况
-
原理:见
udp.png
-
示例:模拟飞秋发送数据,见
04-udp-feiqiu.py
-
UDP协议的服务器与客户端:见
05-udp-server.y
与06-udp-client.py
StringIO与BytesIO
-
说明:这些类型的对象可以与open返回的对象一样操作,但是操作的内存中的数据
-
方法:getvalue用于获取所有数据