原文地址连接: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