一些基本认识
- 网络传输基本要素:
- 网络编程:
- python的网络编程方式
- TCP和UDP
- 一些编程技巧
- socket实现TCP通信
网络传输基本要素:
有连接通道、传输字节数据、输入输出遵守一样的协议
网络编程:
CS(QQ下载客户端)、BS(通过浏览器访问服务端)
网络编程涉及到OSI七层模型:只要进行网络开发,必须依据七层模型进行数据包装和拆包。
python的网络编程方式
python是高级语言,通过socket进行包装和拆包。
socket:对TCP等协议的一种包装、应用。让开发者不用研究具体通信协议。
TCP和UDP
TCP和UDP的主要区别:前者通过三次握手保证可靠性;后者保证高效性;都在传输层。
TCP通讯:面向连接、安全性和稳定性最高;使用的较多。
一些编程技巧
- 服务端:accept阻塞等待; with as语句不用进行close?
- 通过upper统一判断;
- 多种方式同时运行同一个脚本,可以理解为是不同进程。
socket实现TCP通信
总结:
-
TCP, socket的CS编程流程:服务端绑定地址端口、开启监听、等待连接;客户端连接服务器地址端口
-
TCP, socket数据处理的ECHO模型:数据发送和接收;while循环接收、处理、响应数据;停止条件的判断;
-
改进-socket的多进程处理:多个客户访问;multiprocess循环开启多个进程;开启进程。【就是高并发,关键问题是如何处理服务器性能】
- UDP和TCP主要区别:数据报协议;参数指定,服务端不用监听,循环接收数据,获取客户端地址并原路返回 ;客户端直接发送sendto到地址,不用连接。
- UDP广播功能setsockopt:在一个局域网内;服务端不用绑定ip地址,直接对接收端的端口进行发送;客户端绑定地址端口,等待服务端发送消息【手机待机收短信】
TCP和UDP区别:TCP指定一条路线;UD没有专门路线/多条路线,多个客户端都能同时发送,不用多进程处理。
TCP和UDP广播:有点像角色反过来了,但广播不止一条路线
HTTP:服务端更新时,客户端app需要更新很麻烦,所以在TCP上改进出现HTTP;客户端通过浏览器向server发送请求,server加载数据,将数据以HTML文件格式进行传输给浏览器并解析显示。