41 lines
992 B
Go
Raw Normal View History

2025-08-24 11:35:52 +08:00
package main
2025-08-24 14:14:55 +08:00
import (
"context"
"log"
"net"
"122.51.31.227/go-course/go18/skills/rpc/protobuf/hello_service"
"google.golang.org/grpc"
)
func main() {
// 首先是通过grpc.NewServer()构造一个gRPC服务对象
grpcServer := grpc.NewServer()
// SDK 提供 服务实现对象的注册
hello_service.RegisterHelloServiceServer(grpcServer, &HelloService{})
lis, err := net.Listen("tcp", ":1234")
if err != nil {
log.Fatal(err)
}
// 然后通过grpcServer.Serve(lis)在一个监听端口上提供gRPC服务
grpcServer.Serve(lis)
}
var _ hello_service.HelloServiceServer = (*HelloService)(nil)
// 实现一个GRPC的对象, 并行实现了 HelloServiceServer 接口
// 该对象就可以注册给GRPC框架
type HelloService struct {
hello_service.UnimplementedHelloServiceServer
}
func (h *HelloService) Hello(ctx context.Context, req *hello_service.Request) (*hello_service.Response, error) {
return &hello_service.Response{
Value: "Hello " + req.Value,
}, nil
}