2011-10-26 191 views
0

我試圖得到一個IBM tutorialworks例如工作,但到現在爲止還沒有任何運氣XML-RPC蟒蛇不打印輸出

服務器:

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

謝謝!

+0

服務器代碼看起來不錯。客戶端在哪裏運行?爲防萬一,請在URL上嘗試一個尾部的斜線。 – wberry

+0

只是從一個文件夾運行服務器,然後運行client.py。現在client.py不顯示任何內容,只是閒置。 – nils

+0

我剛查過。代碼在我的OSX Leapord上使用python 2.6.1運行得很好 –

回答

1

我的猜測是,有些東西阻止了在服務器進程中調用端口8888的低級bind。如果可以的話,以root身份運行netstat -tlp。如果您不能,請使用telnet localhost 8888來查看是否有任何內容正在收聽。

+0

檢查並沒有使用端口8888 在客戶端和服務器端將端口更改爲8000,然後將它們更改回8888,現在一切正常:/ – nils

+0

adobe activate使用端口8888而這正在干擾Python代碼 – nils