IPC 与分布式示例
本部分涵盖项目中 src/bin/ 目录下的 15 个二进制示例,包括 gRPC 服务、Unix Domain Socket 通信、标准输入输出 IPC 和进程控制。
gRPC 示例
Hello gRPC 服务
文件: grpc_hello_server.rs (18 行)
cargo run --bin grpc_hello_server
学习目标:
- 使用 tonic 构建 gRPC 服务器
- 定义 Protocol Buffer 服务
- 实现 RPC 方法
Hello gRPC 客户端
文件: grpc_hello_client.rs (13 行)
cargo run --bin grpc_hello_client
学习目标:
- 连接 gRPC 服务器
- 发送 RPC 请求
- 处理响应
Greeter 服务
文件: greeter_server.rs (98 行)
文件: greeter_client.rs (59 行)
# 先启动服务器
cargo run --bin greeter_server
# 再启动客户端
cargo run --bin greeter_client
学习目标:
- 完整的 gRPC 服务实现
- 请求/响应模式
- 错误处理
gRPC Store 服务
文件: grpc_store_server.rs (19 行)
文件: grpc_store_client.rs (145 行)
cargo run --bin grpc_store_server
cargo run --bin grpc_store_client
学习目标:
- 状态ful gRPC 服务
- 键值存储模式
- 复杂 RPC 交互
Unix Domain Socket (UDS) 示例
UDS 服务器
文件: uds_server.rs (62 行)
cargo run --bin uds_server
学习目标:
- Unix Domain Socket 服务器
- 本地进程间通信
- 异步接受连接
UDS 客户端
文件: uds_client.rs (42 行)
cargo run --bin uds_client
学习目标:
- 连接 UDS 服务器
- 发送/接收消息
UDS 父进程
文件: uds_parent.rs (40 行)
cargo run --bin uds_parent
学习目标:
- 父进程创建 UDS
- 管理子进程通信
标准输入输出 IPC 示例
Stdio 父进程
文件: stdio_parent.rs (38 行)
cargo run --bin stdio_parent
学习目标:
- 生成子进程
- 通过 stdin/stdout 通信
- 等待子进程完成
Stdio 子进程
文件: stdio_child.rs (20 行)
# 通常由 stdio_parent 启动
cargo run --bin stdio_child
学习目标:
- 从 stdin 读取
- 向 stdout 写入
- 作为子进程运行
进程控制示例
系统控制 (SysCtl)
文件: app_sys_ctl.rs (286 行)
cargo run --bin app_sys_ctl
学习目标:
- 系统管理工具
- 进程生命周期管理
- 信号处理
Nix 控制 (NixCtl)
文件: app_nix_ctl.rs (282 行)
cargo run --bin app_nix_ctl
学习目标:
- 使用 nix crate 进行系统调用
- 进程组和会话管理
- 守护进程模式
基础演示
Basic 演示
文件: basic.rs (22 行)
cargo run --bin basic
学习目标:
- 运行第一个 Rust 程序
- 理解 main 函数
Advance 演示
文件: advance.rs (90 行)
cargo run --bin advance
学习目标:
- 调用基础/进阶示例
- 理解模块调用
运行所有示例
# 列出所有可用的二进制
cargo build --bins
# 运行特定二进制
cargo run --bin <name>
# 运行所有测试
cargo test --workspace
相关章节
💡 提示: UDS 示例仅在 Unix 系统上可用。Windows 用户可以使用 stdio IPC 示例。