首页 > 解决方案 > gRPC C++ 错误代码 14:无法连接到所有地址

问题描述

我第一次尝试使用适用于 Linux 内核的 Windows 子系统和 CLion 作为 IDE(在 Windows 上)来实现 gRPC 服务器/客户端。我的代码除了此通信失败之外没有任何其他错误/问题。

以下代码行

    if(status.ok()) {
        cv::imshow("Rotated image", decrypt_img);
    } else {
        std::cout << status.error_code() << " : " << status.error_message() << std::endl;
    }

产生以下消息

14 : failed to connect to all addresses

标签: c++windowsgrpcfirewallwindows-subsystem-for-linux

解决方案


这是来自 grpc 的一种通用错误消息,可能有多种原因。根据我的经验,它可能是以下情况之一:

  1. 您的服务器没有运行(或者您忘记调用grpc::ServerBuilder::BuildAndStart或者您一直没有启动您的服务器应用程序)。
  2. 第一次运行服务器时,Windows 防火墙应该询问您是否要允许您的应用程序访问网络(我不记得实际的措辞)。你当然想接受这一点。
  3. 您在客户端应用程序中指定了错误的地址(即与您在服务器应用程序中设置的地址不同grpc::ServerBuilder::AddListeningPort

不知道您的实际服务器和客户端代码,这些只是我可以根据我对 grpc 的经验做出的假设。


推荐阅读