RPC的设计**是力图使远程调用中的通讯细节对于使用者透明,调用双方无需关心网络通讯的具体实现。因而实现RPC要进行一定的封装。
- Client在本地发起调用
- Client Stub收到调用后负责将调用的方法及参数等按照消息协议打包并进行网络发送
- Server Stub收到后按照消息协议拆包,并且根据方法名和参数进行本地调用
- Server本地调用执行后将执行结果传给Server Stub
- Server Stub将返回结果按照消息协议打包并进行网络发送
- Client Stub收到消息后进行拆包将结果返回给Client
- Client得到本次RPC调用的结果
-
方法名为
divide
-
第1个调用参数为整型int,名为
num1
-
第2个调用参数为整型int,名为
num2
,默认值为1
- 正常返回float类型
- 错误会抛出
InvalidOperation
异常
-
传输方式:TCP
-
二进制作为数据传输格式
- 使用
struct
模块,使用文档
- 使用
-
加入了多线程的RPC服务器
-
项目结构:
-
使用方法:先开启
server
目录下的main.py再开启client
目录下的main.py