# grpc **Repository Path**: wcly/grpc ## Basic Information - **Project Name**: grpc - **Description**: grpc demo 服务端:go 客户端:android - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-23 - **Last Updated**: 2026-02-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # gRPC Demo Project 这是一个简单的 gRPC 示例项目,包含一个 Go 编写的服务端和一个 Android 编写的客户端。 ## 项目结构 - `go-server`: gRPC 服务端,使用 Go 语言开发。 - `android-client`: gRPC 客户端,使用 Android (Kotlin) 开发。 - `proto`: 定义了通用的 gRPC 服务接口(在各自目录下均有副本)。 --- ## 1. 启动服务端 (Go) ### 前置条件 - 已安装 [Go](https://golang.org/dl/) (建议 1.18+)。 ### 启动步骤 1. 进入服务端目录: ```bash cd go-server ``` 2. 下载依赖: ```bash go mod tidy ``` 3. 启动服务: ```bash go run main.go ``` 服务端默认会在 `localhost:50051` 监听请求。 --- ## 2. 启动客户端 (Android) ### 前置条件 - 已安装 [Android Studio](https://developer.android.com/studio)。 ### 启动步骤 1. 使用 Android Studio 打开 `android-client` 目录。 2. 等待 Gradle 同步完成。 3. **关键配置**: - 默认情况下,客户端连接的地址是 `10.0.2.2:50051`(这是 Android 模拟器访问电脑本机的专用 IP)。 - 如果你使用的是真机调试,请修改 `GrpcViewModel.kt` 中的 IP 地址为电脑在局域网中的实际 IP。 4. 点击 **Run** 按钮,将应用安装到模拟器或真机上。 5. 在应用界面点击相关按钮(如登录)即可发起 gRPC 请求。 --- ## 3. 修改 Proto (可选) 如果你修改了 `.proto` 文件,需要重新生成代码: ### Go 确保安装了 `protoc` 以及 `protoc-gen-go` 和 `protoc-gen-go-grpc`: ```bash go install google.golang.org/protobuf/cmd/protoc-gen-go@latest go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest ``` 然后在 `go-server` 目录下运行: ```bash protoc --go_out=. --go-grpc_out=. -I . proto/*.proto ``` ### Android Android 项目使用了 `protobuf-gradle-plugin`,你可以直接运行: ```bash ./gradlew generateProto ``` 或者直接编译运行项目,代码会自动重新生成。 #### 运行单元测试 - **Mock 测试** (无需服务端): 直接在 Android Studio 运行 `StreamServiceTest`。 - **集成测试** (需启动 Go 服务端): 1. 确保服务端已启动 (`go run main.go`)。 2. 在 Android Studio 运行 `StreamRealServerTest`。 3. 命令运行:`./gradlew test` (会同时运行两者)。