Socket
套接字是网络通信端点,由 (协议, 本地IP, 本地端口, 远程IP, 远程端口) 标识,是应用层与传输层接口。
用途
为应用提供网络通信的抽象端点,封装底层协议细节。
机制
套接字 API:socket() 创建,bind() 绑定地址,listen() 服务器监听,accept() 接受连接,connect() 客户端连接,send()/recv() 收发,close() 关闭。TCP 套接字有状态机,UDP 无连接。
用例
- 网络服务端与客户端
- 数据库连接
- WebSocket 通信
- Unix 域套接字(本地 IPC)
示例
- 输入
(TCP, 0.0.0.0:8080, client:1234)输出One connected TCP socketThe five-tuple
常见错误
- Unclosed sockets exhaust available ports
- Use SO_REUSEADDR or close sockets promptly