2021SC@SDUSC-山大智云源码分析(5)

本文详细分析了searpc-client项目结构,重点讲解了searpc_client_new函数创建RPC客户端的过程,以及searpc_client_call__objlist方法如何调用RPC函数。客户端主要负责存储传输函数和socket描述符,通过传输函数发送请求到服务端。服务端则根据接收到的数据调用相应RPC函数并返回结果。
摘要由CSDN通过智能技术生成

2021SC@SDUSC

searpc项目结构分析

searpc-client

根据searpc-demo-client.c中函数调用顺序对searpc-client.c进行分析

searpc_client_new

searpc_client_new ()
{
    return g_new0 (SearpcClient, 1);
}
typedef char *(*TransportCB)(void *arg, const gchar *fcall_str,
                             size_t fcall_len, size_t *ret_len);
typedef int (*AsyncTransportSend)(void *arg, gchar *fcall_str,
                                  size_t fcall_len, void *rpc_priv);
struct _SearpcClient {
    TransportCB send;
    void *arg;
    
    AsyncTransportSend async_send;
    void *async_arg;
};
typedef struct _SearpcClient LIBSEARPC_API SearpcClient;

本函数的作用是创建一个SearpcClient,即rpc客户端

SearpcClient的属性包含传输函数与用于传输的sockfd

  • sockfd:fild descriptor,就是一个套接字描述器。Unix中文件描述符用int

AsyncTransportSend为一个异步的传输函

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值