**1. 干什么** Socket 是内核协议栈为进程建立的收发通道,以文件描述符标识。监听是进程经 bind 绑定地址端口、经 listen 设置完成握手队列后,由内核代为接收连接请求的状态。 **2. 谁在调** * 用户态主体:服务进程与客户端程序。 * C 库封装层:`socket`、`bind`、`listen`、`accept`。 * 内核态主体:sock 对象、监听表、完成握手队列。 **3. 做什么业务** `socket()`在内核建立收发缓冲区与状态记录,返回小整数文件描述符。服务端`bind()`把通道与本地 IP、端口绑定,`listen()`声明队列长度,内核代为接收完成握手的连接。`accept()`从队列取出一条已完成连接,返回新的专用文件描述符。客户端侧无 listen,直接 connect。 **4. 组件清单** * sock 对象与文件描述符 * bind 三元组(协议、地址、端口) * listen 完成握手队列 * accept 取连接 **5. 最小可运行** ``` # 分别查看监听表与已建立连接表