什么是协议编译器?为什么 rpcgen 被称为协议编译器?

Posted

技术标签:

【中文标题】什么是协议编译器?为什么 rpcgen 被称为协议编译器?【英文标题】:what is a protocol compiler ? why is rpcgen known as a protocol compiler? 【发布时间】:2014-04-05 17:28:07 【问题描述】:

为什么 rpcgen 被称为协议编译器?我知道远程过程调用的基础知识,但不知道协议编译器这个术语,并且无法在任何地方找到解决方案。

【问题讨论】:

【参考方案1】:

rpcgen 将带有协议描述的 dot-x 文件作为输入,并生成实现客户端和服务所定义协议所需的文件。例如,假设您要创建一个服务来计算字符串长度。您必须在协议中提供 dot-x:

/* strlen.x */
program STRLEN 
    version STRLENVERS 
        int strlen(string) = 1;
     = 1;
 = 117

这是您的协议。通常,我们使用 rpcgen 在 C 中生成带有存根的文件,但也有其他“编译”,它们将生成 python 或 java 代码。

xdr语言语法查看官方文档:http://docs.oracle.com/cd/E19683-01/816-1435/xdrproto-ex-70/index.html

【讨论】:

【参考方案2】:

在 rpcgen 的情况下,它被用作额外的编译器 - 它基于协议文件“.x”编译新文件 - 在协议文件中,您可以指定 rpcgen 应该为您编译的内容。

rpcgen 对其 .x 文件使用特定协议 - XDR 语言规范

【讨论】:

以上是关于什么是协议编译器?为什么 rpcgen 被称为协议编译器?的主要内容,如果未能解决你的问题,请参考以下文章

什么是TCP/IP协议?

请问:啥是TCP\IP协议?啥是SPX/IPX协议?

什么是通信网络协议

TLS协议的TLS握手协议

边界网关协议的BGP属性

使用rpcgen时,调用者如何找到被调用者?