下面是一个示例代码,使用 grpc.NewServer()
函数创建一个 gRPC 服务器:
package main
import (
"context"
"log"
"net"
"google.golang.org/grpc"
)
// 定义 HelloService
type HelloService struct{}
// 实现 HelloService 接口
func (s *HelloService) SayHello(ctx context.Context, in *HelloRequest) (*HelloResponse, error) {
log.Printf("Receive message: %s", in.Message)
return &HelloResponse{Message: "Hello, " + in.Name}, nil
}
// main 函数
func main() {
// 创建监听
lis, err := net.Listen("tcp", ":50051")
if err != nil {
log.Fatalf("failed to listen: %v", err)
}
// 创建 gRPC 服务器
s := grpc.NewServer()
// 注册 HelloService
RegisterHelloServiceServer(s, &HelloService{})
// 启动 gRPC 服务
log.Printf("gRPC server listening on %v", lis.Addr())
if err := s.Serve(lis); err != nil {
log.Fatalf("failed to serve: %v", err)
}
}
在这个示例中,我们先创建了一个 HelloService
结构体,并为其实现了 SayHello()
方法。接着,在 main()
函数中,我们使用 net.Listen()
函数创建了一个 TCP 监听器,并使用 grpc.NewServer()
函数创建了一个 gRPC 服务器实例。然后,我们将 HelloService
注册到这个服务器中,最后启动了这个 gRPC 服务。