IO 多路复用
一个线程同时管理多个 Socket,通过操作系统全局监听所有 Socket 的 IO 状态,等待多个连接中最早有数据的连接,避免非顺序地一个个执行。
网络数据包处理的细节
- 一个线程在同一瞬间只能执行某一行代码。
- 多个客户端发送多个请求可以同一时刻到达服务器。
- 网卡一个个地接收数据。
- 内核将数据放进各自 Socket 的接收缓冲区。
- Epoll 一次告诉线程各个 Socket 的 IO 状况。
- 线程进行 IO 复用,选择接收缓冲区有请求数据的 Socket,一个个地处理并写入它们的发送缓冲区。
- 操作系统通过网卡返回响应。
应用层协议
单元信息表示方式
行文本
分隔符 + 值内容
麦当劳,商家图片 3.jpg, 5.0, 10, 快餐
HTML
成对起始标签 + 固定键说明 + 成对<>分隔符 + 值内容
<table> <tr> <td>商家名称</td> <td>图片</td> <td>评分</td> <td>销量</td> <td>分类</td> </tr> <tr> <td>麦当劳</td> <td><img src="商家图片 3.jpg"></td> <td>5.0</td> <>10 快餐


