xml-rpc python 不打印输出

发布于 2024-12-11 22:42:17 字数 1024 浏览 0 评论 0原文

我正在尝试让 IBMtutorialworks 示例正常工作,但到目前为止还没有任何运气

服务器:

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

它应该打印出日历,但当我运行客户端时它只是停止并仅打印出“侦听端口 8000”

我使用的是 python 2.7.2,但教程是在 2002 年 9 月编写的。是否存在某种语法差异或者我做错了什么。

教程本身位于此处 http://www.ibm.com /developerworks/webservices/library/ws-pyth10/index.html

提前致谢!

I'm trying to get an IBM tutorialworks example working but until now there hasn't been any luck

server:

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()

Client:

import xmlrpclib

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

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

It should print out a calendar but it just stalls when I run the client and prints out only "Listening on port 8000"

I'm using python 2.7.2 but the tutorial was written in 2002 september. Is there somekind of syntax difference or I'm doing something wrong.

The tutorial itself is located here http://www.ibm.com/developerworks/webservices/library/ws-pyth10/index.html

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

像极了他 2024-12-18 22:42:17

我的猜测是,某些东西阻止了服务器进程中对端口 8888 的低级 bind 调用。如果可以的话,以 root 身份运行 netstat -tlp。如果不能,请使用 telnet localhost 8888 看看是否有任何东西正在侦听。

My guess is that something is blocking the low-level bind call to port 8888 in your server process. Run netstat -tlp as root if you can. If you can't, use telnet localhost 8888 to see what if anything is listening.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文