C++ gRPC C++;,客户:“;14:连接失败“;

C++ gRPC C++;,客户:“;14:连接失败“;,c++,grpc,C++,Grpc,我们正在从运行“helloworld”示例,收到以下错误: 14:连接失败 接收到问候者:RPC失败 服务器和客户端正在侦听:0.0.0.0:50051。服务器正在运行。 首先,我们在服务器上只收到一个数据包,客户端崩溃,我用tcpdump检查了它。我们在不同的主机以及同一台主机上进行了检查,但这两种情况都不起作用。 我们应该换一个不同的IP或端口号吗?我的电脑上也有同样的问题(操作系统:ubuntu 16.04 LTS,protobuf 3.4.0) 所以我寻找原因,我发现: 理由 如果在li

我们正在从运行“helloworld”示例,收到以下错误:

14:连接失败

接收到问候者:RPC失败

服务器和客户端正在侦听:
0.0.0.0:50051
。服务器正在运行。 首先,我们在服务器上只收到一个数据包,客户端崩溃,我用tcpdump检查了它。我们在不同的主机以及同一台主机上进行了检查,但这两种情况都不起作用。
我们应该换一个不同的IP或端口号吗?

我的电脑上也有同样的问题(操作系统:ubuntu 16.04 LTS,protobuf 3.4.0)

所以我寻找原因,我发现:

理由 如果在linux机器上,环境配置了通常的“http_proxy”环境变量,gRPC在尝试连接时会考虑到这一点,但随后会继续忽略伴随的no_proxy设置:

例如:

基本上,它使用http_代理url进行连接,即使localhost在no_代理列表中。因为在大多数linux机器上,默认的no_代理包括localhost;最终结果是,任何配置了http_代理的用户将永远无法连接到本地主机。--[]


其他 您可以使用启用grpc跟踪
export GRPC_TRACE=all&&./greeter_server
对于客户端来说也是一样的

验证 端子1 2号航站楼

这应该能奏效

ps.有关GRPC_跟踪的更多信息-

参考文献

  • 解决了!您需要使用以下命令在两侧取消设置代理:$unset http_proxy$http_proxy=”“此问题已在最新grpc版本中修复,但无论如何,感谢您的宝贵意见,挽救了我的一天。@Fei当然!
    $ env
    http_proxy=http://106.1.216.121:8080
    no_proxy=localhost,127.0.0.1
    
    $ ./greeter_client
    D0306 16:00:11.419586349 1897 combiner.c:351] C:0x25a9290 finish old_state=3
    D0306 16:00:11.420527744 1896 tcp_client_posix.c:179] CLIENT_CONNECT: ipv4:106.1.216.121:8080: on_writable: error="No Error"
    D0306 16:00:11.420567382 1896 combiner.c:145] C:0x25a69a0 create
    D0306 16:00:11.420581887 1896 tcp_client_posix.c:119] CLIENT_CONNECT: ipv4:106.1.216.121:8080: on_alarm: error="Cancelled"
    I0306 16:00:11.420617663 1896 http_connect_handshaker.c:319] Connecting to server 127.0.0.1:50051 via HTTP proxy ipv4:106.1.216.121:8080