欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入免费知识星球。

python中的远程过程调用

Python基础 迷途小书童 3年前 (2020-07-02) 3229次浏览 0个评论

软硬件环境

  • anaconda with python
  • hprose
  • xmlrpc

视频看这里

此处是youtube的播放链接,需要科学上网。喜欢我的视频,请记得订阅我的频道,打开旁边的小铃铛,点赞并分享,感谢您的支持

什么是RPC

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

python中rpc的实现

xmlrpc示例

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

文件server.py内容

from xmlrpc.server import SimpleXMLRPCServer

def test():
    print("rpc test.")

if __name__ == '__main__':
    server = SimpleXMLRPCServer(("127.0.0.1", 8889), allow_none=True)
    server.register_function(test)
    server.serve_forever()

文件client.py内容

if __name__ == '__main__':
    client = ServerProxy("http://127.0.0.1:8889")
    print(client.test())

hprose示例

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

pip install hprose

server.py

import hprose

def getAppVersion():
    return "1.0.1"

if __name__ == '__main__':
    server = hprose.HttpServer(port = 8889)
    server.addFunction(getAppVersion)
    server.start()

client.py

import hprose

def main():
    client = hprose.HttpClient('http://127.0.0.1:8889/')
    print(client.getAppVersion())

if __name__ == '__main__':
    main()

参考资料

喜欢 (1)

您必须 登录 才能发表评论!

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

请关闭 Adblock 等类似浏览器插件,然后刷新页面访问,感谢您的支持!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.