Я пытаюсь создать сервер xmlrpc в ВМ, если указать хост как localhost , а затем при попытке подключиться через клиент возникает следующая ошибка.
E:\Programming\Python\xmlserver>python xml_client.py
Traceback (most recent call last):
File "xml_client.py", line 6, in <module>
print s.system.listMethods()
File "C:\Python27\lib\xmlrpclib.py", line 1240, in __call__
return self.__send(self.__name, args)
File "C:\Python27\lib\xmlrpclib.py", line 1599, in __request
verbose=self.__verbose
File "C:\Python27\lib\xmlrpclib.py", line 1280, in request
return self.single_request(host, handler, request_body, verbose)
File "C:\Python27\lib\xmlrpclib.py", line 1308, in single_request
self.send_content(h, request_body)
File "C:\Python27\lib\xmlrpclib.py", line 1456, in send_content
connection.endheaders(request_body)
File "C:\Python27\lib\httplib.py", line 1049, in endheaders
self._send_output(message_body)
File "C:\Python27\lib\httplib.py", line 893, in _send_output
self.send(msg)
File "C:\Python27\lib\httplib.py", line 855, in send
self.connect()
File "C:\Python27\lib\httplib.py", line 832, in connect
self.timeout, self.source_address)
File "C:\Python27\lib\socket.py", line 575, in create_connection
raise err
socket.error: [Errno 10061] No connection could be made because the target machine actively refused it
Но когда я устанавливаю VM IP вместо localhost, он прекрасно работает. Мне нужно запустить xmlserver на нескольких машинах. Так что для каждой машины я должен давать IP машины вместо того, чтобы просто указывать localhost в файле сервера? и подключитесь к этому серверу, используя IP-адрес компьютера.
Ниже приведен пример файла моего сервера,
from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
def ping():
return True
server = SimpleXMLRPCServer(('localhost', 9000))
server.register_function(ping)
if __name__ == '__main__':
server.serve_forever()