zmq源码分析之socket和pipe关系

张开发
2026/4/20 5:24:51 15 分钟阅读

分享文章

zmq源码分析之socket和pipe关系
文章目录**1. 核心关系图****2. Pipe 的本质****3. Pipe 的创建过程****4. Pipe 附加到 Socket**管道事件接口详解**5. i_pipe_events 接口****6. 四个管道事件详解****6.1 read_activated - 可读事件****6.2 write_activated - 可写事件****6.3 hiccuped - 管道打嗝事件****6.4 pipe_terminated - 管道终止事件****7. 事件流转完整示例****示例 1:接收消息****示例 2:发送消息阻塞****示例 3:连接断开****8. 为什么需要管道事件?****问题:不用事件会怎样?****解决方案:事件驱动****9. Socket 与 Pipe 的关系总结****10. 完整架构图****11. 总结**1. 核心关系图┌─────────────────┐ │ Socket 对象 │ │ (socket_base_t) │ └────────┬────────┘ │ 管理 │ ┌────┴────┐ │ _pipes │ ← 管道列表(array_t) └────┬────┘ │ ├──────────────┐ │ │ ┌────┴────┐ ┌────┴────┐ │ Pipe 1 │ │ Pipe 2 │ │ (TCP) │ │(inproc) │ └────┬────┘ └────┬────┘ │ │ ┌────┴────┐ ┌────┴────┐ │ Session │ │ Pipe │ │(网络层) │ │ (另一端) │ └─────────┘ └─────────┘关键点:1 个 Socket可以有多个 Pipe(多连接)Pipe是 Socket 与网络层之间的双向通道每个 Pipe代

更多文章