如何在grpc中为服务器添加init函数?

问题描述

我正在使用gRPC编写C / S演示。现在,我想在服务器中初始化一些线程局部变量。我知道如何向客户端调用的服务器添加功能。但是我不希望客户端在服务器设置后调用initad的initad函数

我在服务器中的代码如下:

void RunServer(){
    printf("threadID:%ld\n",total_sz,syscall(SYS_gettid));
    std::string server_address("0.0.0.0:50051");
    myServer service;
    ServerBuilder builder;
    builder.AddListeningPort(server_address,grpc::InsecureServerCredentials());
    builder.RegisterService(&service);
    std::unique_ptr<Server> server(builder.BuildAndStart());
    std::cout << "Server listening on " << server_address << std::endl;
    server->Wait(); 
}

int main(int argc,char** argv){
    RunServer();
    return 0;
}

但是客户端调用的那些函数位于其他线程中,而不是与“ main”函数所在的线程相同。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)