2011-10-26 3 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 

이 달력을 인쇄해야하지만 그냥 내가 클라이언트를 실행할 때 포장 마차 만

,691 "포트 8000에서 수신 대기"출력합니다

파이썬 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 Leopord에서 Python 2.6.1을 사용하여 완벽하게 실행됩니다. –

답변

1

내 생각 엔 뭔가 서버 프로세스에서 포트 8888에 대한 하위 수준 bind 호출을 차단하고 있습니다. 가능하면 루트로 netstat -tlp을 실행하십시오. 그렇지 않으면 telnet localhost 8888을 사용하여 듣고있는 내용이 무엇인지 확인하십시오.

+0

선택했는데 포트를 사용하지 않았습니다. 8888 클라이언트와 서버에서 포트를 8000으로 변경 한 다음 다시 8888로 변경하면 모든 것이 작동합니다 :/ – nils

+0

어도비 활성화는 포트 8888을 사용합니다. 그 파이썬 코드를 방해했다 – nils