You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.0 KiB

package main
import (
"context"
"flag"
"fmt"
"google.golang.org/grpc"
"log"
"net"
"productService/protos/compiles"
)
//grpc 监听端口
var port = flag.Int("port", 50051, "The server port")
// ProductServer 实现 UnimplementedProductServer
type ProductServer struct {
compiles.UnimplementedProductServer
}
func (ProductServer) ProductInfo(ctx context.Context, pr *compiles.ProductInfoRequest) (*compiles.ProductInfoResponse, error) {
return &compiles.ProductInfoResponse{
Name: "马士兵 Go 云原生",
Int64: 42,
IsSale: true,
}, nil
}
func main() {
flag.Parse()
//设置 tcp 监听器
lis, err := net.Listen("tcp", fmt.Sprintf(":%d", *port))
if err != nil {
log.Fatalf("failed to listen: %v", err)
}
// 新建 grpc Server
s := grpc.NewServer()
// 将 ProductServer 注册到 grpc Server 中
compiles.RegisterProductServer(s, ProductServer{})
log.Printf("server listening at %v", lis.Addr())
// 启动监听
if err := s.Serve(lis); err != nil {
log.Fatalf("failed to serve: %v", err)
}
}