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
。