一种是使用xmlrpc
server端:
from xmlrpc.server import SimpleXMLRPCServer class RPCServer(object): def __init__(self): super(RPCServer, self).__init__() self.send_data = 'hello world' self.recv_data = None def getObj(self): return self.send_data def sendObj(self, data): self.recv_data = data # SimpleXMLRPCServer server = SimpleXMLRPCServer(('localhost',9999), allow_none=True) server.register_introspection_functions() server.register_instance(RPCServer()) server.serve_forever()
client端:
import time from xmlrpc.client import ServerProxy # SimpleXMLRPCServer def xmlrpc_client(): c = ServerProxy('http://localhost:9999') a=c.getObj() print(a) c.sendObj(a) if __name__ == '__main__': xmlrpc_client()
还有一种是使用zerorpc,性能较高
server端:
import zerorpc class RPCServer(object): def __init__(self): super(RPCServer, self).__init__() self.send_data = 'helloworld' self.recv_data = None def getObj(self): return self.send_data def sendObj(self, data): self.recv_data = data s = zerorpc.Server(RPCServer()) s.bind('tcp://127.0.0.1:8888') s.run()
client端:
import zerorpc import time def client(): c = zerorpc.Client() c.connect('tcp://127.0.0.1:8888') a=c.getObj() print(a) c.sendObj(a) if __name__ == '__main__': client()