由于以前自学php,因此知道能够经过http协议,web server访问服务器,以前也是将算法放到服务器的flask上供远程访问接口使用,最近了解到有个RPC的东西,使用Python模块zerorpc搭建RPC更简单快捷。服务端和客户端都要安装zerorpc,将服务端的ip和端口号写入server.py文件中运行(不能中止),客户端client.py中填写服务端的ip和端口号便可运行访问。代码以下:php
Server.pyweb
import zerorpc class doubleRPC(object): def double2(self, num): return num*2 serv = zerorpc.Server(doubleRPC()) serv.bind("tcp://0.0.0.0:4243") serv.run()
Client.py 本机实验室127.0.0.1 远程则换成服务器的ip算法
import zerorpc c = zerorpc.Client() c.connect("tcp://127.0.0.1:4243") print c.double2("RPC")
流式相应(Streaming Responses) 这个代码非原创flask
Server.py服务器
import zerorpc class StreamingRPC(object): @zerorpc.stream def streaming_range(self, fr, to, step): return xrange(fr, to, step) s = zerorpc.Server(StreamingRPC()) s.bind("tcp://0.0.0.0:4242") s.run()
Client.pytcp
import zerorpc c = zerorpc.Client() c.connect("tcp://127.0.0.1:4242") for item in c.streaming_range(10, 20, 2): print item
第一类异常(First-class exception) 这个代码非原创code
Server.pyserver
import zerorpc class ExceptionalRPC(object): def bad(self): raise Exception(":P") s = zerorpc.Server(ExceptionalRPC()) s.bind("tcp://0.0.0.0:4242") s.run()
Client.py接口
import zerorpc c = zerorpc.Client() c.connect("tcp://127.0.0.1:4242") try: c.bad() except Exception, e: print "An error occurred: %s" % e