Ich versuche, einen Client und einen Server mit xmlrpc in Python zu bauen, ich habe eine Klasse mit dem Namen FunctionWrapper zu verwenden, die eine Methode hat und der Kunde es verwenden, den Namen des Verfahrens ist sendMessage_wrapper (self, message), und der Server ist in einer anderen Klasse deklariert, ich versuche die Methode auf dem Server zu registrieren, aber wenn ich die Methode von de client rufe raise und error, kannst du mir bitte helfen?einen Server und Client mit xmlrpc in Python Gebäude
Cliente:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import xmlrpclib
from SimpleXMLRPCServer import SimpleXMLRPCServer
from os import path
sys.path.append(path.dirname(path.dirname(path.abspath(__file__))))
from Constants.Constants import *
class MyApiClient:
def __init__(self, contact_port = DEFAULT_PORT,contact_ip=LOCALHOST_CLIENT):
self.contact_port = contact_port
self.contact_ip = contact_ip
self.proxy = xmlrpclib.ServerProxy(contact_ip+str(self.contact_port)+"/")
def sendMessage(self,message):
self.proxy.sendMessage_wrapper(message)
a = MyApiClient()
a.sendMessage("Hi")
a.sendMessage("WORKING")
Server:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import xmlrpclib
from SimpleXMLRPCServer import SimpleXMLRPCServer
from os import path
sys.path.append(path.dirname(path.dirname(path.abspath(__file__))))
from Constants.Constants import *
class MyApiServer:
def __init__(self,wrapper, my_port = DEFAULT_PORT):
self.port = my_port
self.server = SimpleXMLRPCServer((LOCALHOST,self.port))
self.wrapper = wrapper
self.server.register_instance(self.wrapper)
print("Running")
self.server.serve_forever()
class FunctionWrapper:
def __init__(self):
self.message = None
"""
Procedimiento que ofrece nuestro servidor, este metodo sera llamado
por el cliente con el que estamos hablando, debe de
hacer lo necesario para mostrar el texto en nuestra pantalla.
"""
def sendMessage_wrapper(self, message):
self.message = message
self.showMessage()
def showMessage(self):
print ("Mensaje "+self.message)
#raise NotImplementedError("Should have implemented this")
a = FunctionWrapper()
b = MyApiServer(a)
ich es in Client verwenden lösen self.proxy = xmlrpclib. ServerProxy (contact_ip + str (self.contact_port) + "/", allow_none = Wahr) dies auf dem Server: self.server = SimpleXMLRPCServer ((LOCALHOST, self.port), allow_none = True) –