duanchi4184 2018-02-08 07:11
浏览 525
已采纳

如何正确设置gRPC客户端-服务器

I have a gRPC client and a server, when I run them they seem to be running fine, but when I try to dial a server with a client I get an error:

"Error": {
    "code": 14,
    "message": "all SubConns are in TransientFailure"
},

No idea what is it. I tried to find a solution with google, no success there.

Any ideas? Here is my server code:

lis, err := net.Listen("tcp", fmt.Sprintf("%s:%d", cfg.Host, cfg.Port))
if err != nil {
    logger.Critical(ctx, "failed to listen: %v", err)
} else {
    logger.Info(ctx, "[userserver] running at %s:%d", cfg.Host, cfg.Port)
}

grpcServer := grpc.NewServer()
userServer := userserver.New()
pb.RegisterDomainServer(grpcServer, userServer)
rpcErr := grpcServer.Serve(lis)

if rpcErr != nil {
    logger.Critical(ctx, "failed to serve: %v", rpcErr)
}

btw the server here shows log:

2018/02/08 07:03:37.603287 INFO: [userserver] running at localhost:3001

and client:

conn, err := grpc.Dial(c.serverAddr, grpc.WithInsecure())
if err != nil {
    return err
}
defer conn.Close()

client := pb.NewDomainClient(conn)
_, err = client.Dispatch(ctx, &pb.Command{
    Name:    command,
    Payload: payload,
})

and this is port buff

service Domain {
  rpc Dispatch(Command) returns (Response);
}

message Command {
  string name = 1;
  bytes payload = 2;
}

message Response {}
  • 写回答

2条回答 默认 最新

  • douba6365 2018-02-08 15:33
    关注

    Is the server listening to that port?

    // Most linux 
    lsof -i :3001
    
    // OSX
    lsof -iTCP -sTCP:LISTEN -P
    

    Are you connecting the client to the right address?

    c.serverAddr should be "127.0.0.1:3001"

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器