rpcgen是一种用于简化远程过程调用(RPC)应用程序开发的工具。它的主要作用是编译远程程序接口定义,该定义使用一种类似C语言的RPC语言编写。rpcgen的输出包括客户端存根的C语言版本、服务器框架、XDR(外部数据表示)过滤例程以及一个包含共同定义的头文件。客户端存根与RPC库接口,从而有效地隐藏了网络。服务器存根同样隐藏了网络,从而为远程客户端所调用的过程提供了便利。 程序员通过编写普通的主程序来使用远程程序,主程序通过本地过程调用rpcgen生成的客户端存根。链接这个程序与rpcgen生成的存根可以创建一个可执行的程序。目前,主程序必须用C语言编写。rpcgen还提供了一些选项,允许程序员抑制存根生成和指定服务器存根所使用的传输方式。 从rpcgen的描述中我们可以提取以下知识点: 1. RPC语言:这是一种用于编写远程程序接口定义的专用语言,它类似于C语言,但为了满足远程过程调用的特定需求而设计。 2. XDR(外部数据表示):这是用于在不同的计算机之间传输数据的一种标准格式。XDR格式允许不同类型的计算机之间进行通信,因为它们具有不同的内部数据表示。XDR文件过滤例程用于处理参数和结果的网络格式转换。 3. 客户端存根:它们是与RPC库接口的C语言代码,允许程序员像调用本地过程一样调用远程过程,而无需关心底层网络通信。 4. 服务器框架:与客户端存根相对应,服务器框架允许服务器程序接收远程过程调用请求并执行相应的服务程序。 5. 头文件:rpcgen输出的头文件包含了必要的定义和数据结构,这样客户端和服务器端程序就可以正确地引用和使用由rpcgen创建的对象和类型。 6. 编译和链接:rpcgen生成的文件可以像普通的C语言源文件一样进行编译和链接,生成最终的可执行程序。 7. 服务器程序的编写:程序员需要使用遵守Sun调用约定的任意语言编写服务器端的过程,并将它们与rpcgen生成的服务器框架链接起来以创建可执行的服务器程序。 8. 运输方式的选择:rpcgen允许程序员指定服务器存根所使用的网络传输协议,以适应不同的网络环境和性能要求。 9. 手动编写网络代码:尽管rpcgen的目的是减少程序员编写和调试低级网络接口代码的工作量,但在速度关键型应用中,程序员可以选择自己编写这些代码,并与rpcgen生成的输出链接,或者使用rpcgen的输出作为起点并根据需要进行重写。 10. 编译器的权衡:rpcgen与其他编译器一样,通过减少低级编程和调试来缩短开发时间,但这种简化是以牺牲一定的效率和灵活性为代价的。然而,程序员可以通过“逃生舱口”(escape hatches)将低级代码与高级代码混合使用,例如在性能要求高的场景中,程序员可以手动编写效率更高的代码段。 rpcgen手册详细介绍了该工具如何帮助开发人员编写RPC应用程序,强调了它的便利性和能够显著减少开发远程过程调用应用程序所需的底层网络编程工作量。同时,手册也强调了rpcgen并非万能,有时需要程序员介入进行优化和调整。
剩余16页未读,继续阅读
- 粉丝: 2
- 资源: 14
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- base(1).apk.1
- K618977005_2012-12-6_beforeP_000.txt.PRM
- 秋招信息获取与处理基础教程
- 程序员面试笔试面经技巧基础教程
- Python实例-21个自动办公源码-数据处理技术+Excel+自动化脚本+资源管理
- 全球前8GDP数据图(python动态柱状图)
- 汽车检测7-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 检测高压线电线-YOLO(v5至v9)、COCO、Darknet、VOC数据集合集.rar
- 检测行路中的人脸-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、VOC数据集合集.rar
- Image_17083039753012.jpg