Server

背景

上章节通信中,服务端收到客户端消息后,首先将消息解析,之后丢给了searpc_server_call_function函数处理:

named-pipe-transport.c

static void named_pipe_client_handler(void *data)
{
    ...
        char *service, *body;
        if (request_from_json (buf, len, &service, &body) < 0) {
            break;
        }

        gsize ret_len;
        char *ret_str = searpc_server_call_function (service, body, strlen(body), &ret_len);
        g_free (service);
        g_free (body);
    ...
}

searpc_server_call_function函数中,通过服务名service找到服务端对应的服务,然后对消息体body进行处理,最后将结果返回。

那么在此章节中,我们介绍服务是如何创建,以及远程接口是如何注册,调用并处理消息的。

代码文件

服务相关的代码文件集中在lib目录下的searpc-server.h/c文件以及pysearpc目录下的server.py

Copyright © itrunner.cn 2020 all right reserved,powered by Gitbook该文章修订时间: 2022-08-28 07:44:16

results matching ""

    No results matching ""