python3中的远程过程调用

/

软硬件环境

  • Python
  • hprose
  • xmlrpc

什么是RPC

远程过程调用(Remote Procedure Call)是一个计算机通信协议,它允许运行于一台计算机的程序调用另一台计算机的程序,就像调用本地程序一样简单方便。

python中rpc的实现

xmlrpc示例

xmlrpc是python3中的自带模块,可以很方便的实现rpc通讯

server.py

  1. # -*- coding: utf-8 -*-
  2. from xmlrpc.server import SimpleXMLRPCServer
  3. def test():
  4. print("rpc test.")
  5. if __name__ == '__main__':
  6. server = SimpleXMLRPCServer(("127.0.0.1", 8889), allow_none=True)
  7. server.register_function(test)
  8. server.serve_forever()

client.py

  1. # -*- coding: utf-8 -*-
  2. if __name__ == '__main__':
  3. client = ServerProxy("http://127.0.0.1:8889")
  4. print(client.test())

hprose示例

hprose是国人写的一个rpc框架,它支持多种编程语言,如python、php等,也可以实现基于不同语言的rpc通讯,比如php调用python。

server.py

  1. #!/usr/bin/env python
  2. # encoding: utf-8
  3. import hprose
  4. def getAppVersion():
  5. return "1.0.1"
  6. if __name__ == '__main__':
  7. server = hprose.HttpServer(port = 8889)
  8. server.addFunction(getAppVersion)
  9. server.start()

client.py

  1. #!/usr/bin/env python
  2. # encoding: utf-8
  3. import hprose
  4. def main():
  5. client = hprose.HttpClient('http://127.0.0.1:8889/')
  6. print(client.getAppVersion())
  7. if __name__ == '__main__':
  8. main()

参考资料

https://github.com/hprose/hprose-python

转载请注明作者和出处,并添加本页链接。
原文链接: blog.xugaoxiang.com/118

给我留言