RPC和Socket的区别

来源:互联网 发布:手机音乐播放软件 编辑:程序博客网 时间:2024/06/03 21:00

原文地址连接:http://luluq1987.blog.163.com/blog/static/4079068120101048494705/

学习linux网络编程,有一章降到RPC远过程调用,简单的将就是在本机调用其他远程机器上的过程(可理解为函数或者功能模块)。一个问题就冒了出来,就是为什么不用socket的通信呢?

看过文章后明白,RPC建立在socket的基础上,是的C/S开发变得简单可靠。

为什么变得简单了呢?

你可以像写本地过程调用一样写才C/S程序。通过RPC规格说明文本,调用rpcgent可以自动给你生成client stub和server stub,只需简修改添加就可以了。你所需要确定的是哪些需要在服务器过程就可以了。但要注意的是,一般I/O操作和文件描述符不用来当做远过程调用参数,指针只有在本地进程内才有意义(内存空间不同,指针失去了意义)。

什么时候采用RPC呢?


暂时没有找到经典的应用,不过我在做嵌入式开放式,通过NFS方式将启动文件系统时,是要建立RPC的。只是不知道具体的实现,是不是依靠rpcgetn实现的。



小弟这里有一份关于开发RPC程序的实例代码和参考资料,有兴趣的同学可以给我发邮件,邮箱xzd90@126.com

原创粉丝点击