【RPC】基础

RPC

基本概念

RPC是一个计算机通信协议,允许运行在一台计算机的程序调用另一台计算机的子程序,允许调用远程服务,是一个C/S模式。下图是百度百科的信息,可以看到,它的作用就是我想用到的。main.go里面的计算部分,我希望可以放到服务器上,而服务器获得数据进行计算之后把结果再返还回来,然后本地就可以继续执行下面的代码。

详解看了知乎的一篇文章:

链接: RPC详解

组成

文章中提到了很多的概念
客户端 :也就是所说的调用方,发起调用
客户端存根 :类似客户进程,客户端是无法区分的,将参数打包成消息,然后调用本地操作系统,来将消息发送给服务器操作系统
服务器存根 :接收来自服务器操作系统的消息,并从里面提取出参数,然后调用服务器。另外一个作用就是接收来自服务器端的消息,打包调用操作系统然后传给客户的本地操作系统
服务器端:执行相应的操作,并将结果返回给服务器存根

具体步骤如下:

存在的问题

普通参数的传递是简单的,但是如果是引用参数,比如指针,由于不同的存储,可能引用会失效,这样就需要将参数的副本也传送过去,传递一个指向服务器函数的指针,然后将对象发送回客户端,复制它的引用。

不同的系统的数据格式也可能有区别,所以需要进行标准统一。可以选取一个类型作为参数进行传递来完成统一。

python实现

因为远程暂时用不了go语言,所以先采用python来实现一下

具体是参考了下面的博客。

链接: RPC例子

因为也是C/S模式,所以一个客户端,一个服务器端。但是如果在本机上就可以连接成功,如果放到平台上的话,就没有连接成功,ping也没有办法ping通。尝试了很多种不同的方法,都没有办法。所以最后只能再换一个了。

相关推荐
hzhsec3 分钟前
MSF-CobaltStrike实现内网socks代理转发上线
服务器·网络·安全·网络安全
脆皮的饭桶22 分钟前
结合使用,实现IPVS的高可用性、利用VRRP Script 实现全能高可用
运维·服务器·网络
源远流长jerry1 小时前
DPDK MP (Multi-Process) 通道深度解析
linux·网络·架构·ip
抹茶咖啡2 小时前
IT运维的365天--042 骚操作之--用IPSec给远程桌面上把锁
运维·网络·it运维
源远流长jerry3 小时前
DPDK 内存管理深度解析:从大页到 Mbuf 的完整链路
linux·服务器·网络
Predestination王瀞潞4 小时前
5.4.2 通信->WWW万维网内容访问标准(W3C):WWW(World Wide Web) 核心技术规范
网络·网络协议·https·www
@insist1234 小时前
软件设计师-组网技术基础:网络设备、传输介质与局域网核心协议
开发语言·网络·软考·软件设计师·软件水平考试
虾..4 小时前
TCP协议
网络·网络协议·tcp/ip
上去我就QWER5 小时前
详解HTTP协议中的multipart/form-data
网络·网络协议·http
@encryption5 小时前
TCP,IP
服务器·网络·tcp/ip