一种是使用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()