RPC和Socket的区别
来源:互联网 发布:js农历日历控件 编辑:程序博客网 时间:2024/05/27 02:33
RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过程调用).
越底层,代码越复杂、灵活性越高、效率越高;越上层,抽象封装的越好、代码越简单、效率越差。Socket和RPC的区别再次说明了这点。
——————下面转自:http://johnyan.hostzi.com/phpbb3/viewtopic.php?t=1305——————
不论是程序员在编写基于C/S(客户端服务器)的程序时,还是网络工程师在处理RPC问题时,他们问的最多的就是RPC和Socket有什么区别和联系?
RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像 LPC(本地过程调用).RPC带来了开发C/S程序的简单可靠的手段,它通过一种叫XDR的数据表达方法描述数据,程序员书写伪代码,然后由 rpcgen程序翻译为真正的可编译的C语言源代码,再编译成真正的Client端和Server端程序。
RPC作为普遍的C/S开发方 法,开发效率高效,可靠.但RPC方法的基本原则是--以模块调用的简单性忽略通讯的具体细节,以便程序员不用关心C/S之间的通讯协议,集中精力对付实 现过程.这就决定了 RPC生成的通讯包不可能对每种应用都有最恰当的处理办法,与Socket方法相比,传输相同的有效数据,RPC占用更多的网络带宽.
RPC是在Socket的基础上实现的,它比socket需要更多的网络和系统资源.另外,在对程序优化时,程序员虽然可以直接修改由rpcgen产生的令人费解的源程序,但对于追求程序设计高效率的RPC而言,获得的简单性则被大大削弱.
RPC与是Socket的类比
两 个老板手下各有一个负责接通MSN的秘书.这两个秘书就是基于RPC协议建立的会话层通信.老本不需要知道怎么使用MSN,只要告诉秘书,秘书就会通过 MSN与对方建立会话请求和响应.而基于Socket的通信,老板需要会使用MSN,这样尽管老板需要事先培训一下MSN的简单使用常识,但若与对方通信 时,无需经过秘书,效率更高.
- RPC和Socket的区别
- RPC和Socket的区别
- RPC和Socket的区别
- RPC和Socket的区别
- RPC和Socket的区别
- RPC和Socket通信的区别
- rpc和document的区别
- REST 和RPC的区别
- RPC和IPC的区别
- RPC和WebService的区别
- RPC和WebService的区别
- rpc和rest的区别
- rpc和rest的区别
- RPC和WebService的区别
- RPC是什么?RPC与REST、Socket的区别?php中流行的rpc框架有哪些?
- IPC和RPC的区别和联系
- RPC和REST的区别(转)
- web service和rpc的区别
- 强化市场营销意识,提升军队医院口碑
- BZOJ 2982: combination Lucas定理
- 微信公众号支付
- python不同module功能简介
- 二维码iOS开发-二维码扫描和应用跳转
- RPC和Socket的区别
- Redis缓存与异步请求多个sql的性能问题
- tableView滑动删除返回错误 [ tableView:canEditRowAtIndexPath:]:message sent to deallocated instance 0x10930c1
- java程序员从笨鸟到菜鸟之(七)一—java数据库操作
- unity3D VR手柄模型替换
- 改进式PID控制以及C语言实现过程
- Boost.Interprocess使用手册翻译之四:在进程间共享内存 (Sharing memory between processes)
- Unity3D Shader之路 Shader错误、解决方法和重要内容汇总
- java ee 的web项目当中,css样式表的背景图片显示。