Питон xml-rpc не печатает вывод - PullRequest
0 голосов
/ 26 октября 2011

Я пытаюсь заставить пример учебного пособия IBM работать, но до сих пор не было никакой удачи

Сервер:

import calendar, SimpleXMLRPCServer

#The server object
class Calendar:
    def getMonth(self, year, month):
        return calendar.month(year, month)

    def getYear(self, year):
        return calendar.calendar(year)


calendar_object = Calendar()
server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8888))
server.register_instance(calendar_object)

#Go into the main listener loop
print "Listening on port 8888"
server.serve_forever()

Клиент:

import xmlrpclib

server = xmlrpclib.ServerProxy("http://localhost:8888")

month = server.getMonth(2002, 8)
print month

Он должен распечатать календарь, но он просто останавливается, когда я запускаю клиент, и выводит только «Listening on port 8000»

Я использую Python 2.7.2, но учебник был написан в сентябре 2002 года. Есть какая-то разница в синтаксисе или я делаю что-то не так.

Сам учебник находится здесь http://www.ibm.com/developerworks/webservices/library/ws-pyth10/index.html

Заранее спасибо!

1 Ответ

1 голос
/ 26 октября 2011

Я предполагаю, что что-то блокирует низкоуровневый вызов bind на порт 8888 в процессе вашего сервера. Запустите netstat -tlp как root, если можете. Если вы не можете, используйте telnet localhost 8888, чтобы увидеть, что, если что-то слушает.

...