Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android的GRPC在检查SO_重用端口时失败_Android_Grpc - Fatal编程技术网

android的GRPC在检查SO_重用端口时失败

android的GRPC在检查SO_重用端口时失败,android,grpc,Android,Grpc,我们正在考虑使用grpc作为同一台计算机上进程之间的通信手段。现在我们正在测试它是否支持Android。我们从grpc源代码编译了“hello world”测试程序,并且能够在Android设备(4.0.4)上运行。但是,测试失败,输出如下: E0915 13:23:11.914287843 1074 tcp_server_posix.c:150]检查SO_重用端口:{“已创建”:“@1473945791.913738526”,“描述”:“操作系统错误”,“错误号”:92,“文件”:“src/c

我们正在考虑使用grpc作为同一台计算机上进程之间的通信手段。现在我们正在测试它是否支持Android。我们从grpc源代码编译了“hello world”测试程序,并且能够在Android设备(4.0.4)上运行。但是,测试失败,输出如下:

E0915 13:23:11.914287843 1074 tcp_server_posix.c:150]检查SO_重用端口:{“已创建”:“@1473945791.913738526”,“描述”:“操作系统错误”,“错误号”:92,“文件”:“src/core/lib/iomgr/socket_utils_common_posix.c”,“文件行”:181,“操作系统错误”:“协议不可用”,“系统调用”:“setsockopt(SO_重用端口)” 正在0.0.0.0:50051上侦听的服务器

这有可能以某种方式修复吗?或者这仅仅意味着我们不能在Android上使用grpc

尝试手动设置选项:

class Opts : public ::grpc::ServerBuilderOption
{
 public:
  void UpdateArguments(ChannelArguments* arg) GRPC_OVERRIDE
  {
      std::cout << "UpdateArguments called:" << std::endl;
      arg->SetInt(GRPC_ARG_ALLOW_REUSEPORT, 0);
  }

  void UpdatePlugins(std::vector<std::unique_ptr<ServerBuilderPlugin>>* plugins)  GRPC_OVERRIDE
  {
      for(auto s = plugins->begin(); s!= plugins->end(); ++s)
      {
          std::cout << (*s)->name() << std::endl;
      }
  }
};

... 

   std::unique_ptr<ServerBuilderOption> opts(new Opts);
   builder.SetOption(std::move(opts));

class选项:public::grpc::serverbuilder选项
{
公众:
void UpdateArguments(ChannelArguments*arg)GRPC_覆盖
{
std::cout begin();s!=插件->结束();+s)
{

STD::CUT NAME:()你是使用C++吗?我希望这是一个软故障:你没有得到SOUReUpPoT功能,但是服务器仍然启动和运行。谢谢你的回复。是的,它是C++。它似乎运行,正如你所说的。但是TestClient没有收到任何东西,所以有些东西失败了。这是我得到的唯一输出。有什么想法?你在客户端上有什么错误?我假设你正在尝试连接到127.0.0.1:500 51或本地主机:ust似乎什么都没有发生。在客户端代码中,它正在尝试连接到本地主机:50051。我们尝试更改服务器代码,以便它不使用so_REUSEPORT(请参阅下一条注释中的代码)类选项:public::grpc::ServerBuilderOption{public:void UpdateArguments(ChannelArguments*arg)grpc_OVERRIDE{std::cout begin();s!=插件->结束();++s){std::cout name()