没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
远程调用使得调用远程服务器的对象、方法的方式就和调用本地对象、方法的方式差不多,因为我们通过网络编程把这些都隐藏起来了。远程调用是分布式系统的基础。 远程调用一般分为两种,远程过程调用(RPC)和远程方法调用(RMI)。 RPC RPC属于函数级别的远程调用,其多是通过HTTP传输数据,数据形式有XML、JSON、序列化数据等。在此,用python做一个xml-rpc的示例。 先给服务器端server.py:复制代码 代码如下:from SimpleXMLRPCServer import SimpleXMLRPCServer def add(x, y): return x + y
资源详情
资源评论
资源推荐
Python中实现远程调用(中实现远程调用(RPC、、RMI)简单例子)简单例子
远程调用使得调用远程服务器的对象、方法的方式就和调用本地对象、方法的方式差不多,因为我们通过网络编程把这些都隐
藏起来了。远程调用是分布式系统的基础。
远程调用一般分为两种,远程过程调用(RPC)和远程方法调用(RMI)。
RPC
RPC属于函数级别的远程调用,其多是通过HTTP传输数据,数据形式有XML、JSON、序列化数据等。在此,用python做一
个xml-rpc的示例。 先给服务器端server.py:
复制代码 代码如下:
from SimpleXMLRPCServer import SimpleXMLRPCServer
def add(x, y):
return x + y
if __name__ == ‘__main__’:
s = SimpleXMLRPCServer((‘127.0.0.1’, 8080))
s.register_function(add)
s.serve_forever()
s是一个绑定了本地8080端口的服务器对象,register_function()方法将函数add注册到s中。serve_forever()启动服务器。 再给
个客户端client.py:
from xmlrpclib import ServerProxy
if __name__ == ‘__main__’:
s = ServerProxy(“http://127.0.0.1:8080”)
print s.add(3,4)
现在,运行server.py,然后运行client.py,client.py所在的console会输出7。
我们用wireshark看一下这期间传递的数据是什么样子的,请求的数据:
复制代码 代码如下:
<?xml version=’1.0′ ?>
<methodCall>
<methodName>
add
</methodName>
<params>
<param>
<value>
<int> 3 </int>
</value>
</param>
<param>
<value>
<int> 4 </int>
</value>
</param>
</params>
</methodCall>
响应的数据:
复制代码 代码如下:
<?xml version=’1.0′ ?>
<methodResponse>
<params>
<param>
<value>
<int> 7 </int>
</value>
</param>
</params>
weixin_38595473
- 粉丝: 3
- 资源: 875
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于ESP32和AWS IoT Core的室内温湿度监测系统.zip
- (源码)基于Arduino的I2C协议交通灯模拟系统.zip
- coco.names 文件
- (源码)基于Spring Boot和Vue的房屋租赁管理系统.zip
- (源码)基于Android的饭店点菜系统.zip
- (源码)基于Android平台的权限管理系统.zip
- (源码)基于CC++和wxWidgets框架的LEGO模型火车控制系统.zip
- (源码)基于C语言的操作系统实验项目.zip
- (源码)基于C++的分布式设备配置文件管理系统.zip
- (源码)基于ESP8266和Arduino的HomeMatic水表读数系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0