如何在linux下编写自己得rpc调用

本文介绍了在Linux系统中编写RPC调用的步骤,包括理解主要数据结构、注册RPC调用、创建RPC调度线程、实现调用函数以及解析参数和返回值的方法。
摘要由CSDN通过智能技术生成

linux rpc在内核中实现,源代码位置是net/sunrpc/
sunrpc不仅实现了rpc的调度,同时将rpc请求构造解析发送接受的通用部分进行了提取。要定义自己的rpc调用仅需要实现那些非通用的部分,下面简要介绍怎么实现一个自己的rpc客户端(2.4内核)


主要数据结构介绍

1。rpc请求


/*
 * This is the RPC buffer
 */
struct rpc_iov {
    struct iovec        io_vec[MAX_IOVEC]; //使用10个 iovec 可以操作分散的buffer
    unsigned int        io_nr;
    unsigned int        io_len;
};

/*
 * This describes a complete RPC request
 */
struct rpc_rqst {
    /*
     * This is the user-visible part
     */
    struct rpc_xprt *    rq_xprt;        /* RPC client */
    struct rpc_timeout    rq_timeout;        /* timeout parms */
    struct rpc_iov        rq_snd_buf;        /* send buffer 发送缓冲区*/
    struct rpc_iov        rq_rcv_buf;        /* recv buffer 接受缓冲区*/

    /*
     * This is the private part
     */
    struct rpc_task *    rq_task;    /* RPC task data */
    __u32            rq_xid;        /* request XID */
    struct rpc_rqst *    rq_next;    /* free list */
    volatile unsigned char    rq_received : 1;/* receive completed */

    /*
     * For authentication (e.g. auth_des)
     */
    u3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值