Duda sobre un servicio web en xmlrpclib

Arnau Sanchez arnau en ehas.org
Sab Dic 2 23:11:43 CET 2006


Antonio Roncero escribió:

> accedo desde el ordenador 192.168.2.5 de la siguiente manera.
> 
> import xmlrpclib
> s = xmlrpclib.Server('http://192.168.2.2:8888')
> print s.suma(2,3)

Sería interesante que pegaras también el código del servidor, porque lo más 
probable es que estés haciendo "bind" sólo a la dirección local. Si tienes algo así:

server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8888))

Prueba con esto:

server = SimpleXMLRPCServer.SimpleXMLRPCServer(("", 8888))

Si estás en *nix, puedes comprobar que efectivamente está escuchando a todo el 
mundo:

#lsof -i :9999
COMMAND   PID  USER   FD   TYPE  DEVICE SIZE NODE NAME
ipython 22500 arnau    4u  IPv4 1194737       TCP *:8888 (LISTEN)

....

Seguramente lo conozcas, pero por si acaso, aquí tienes un buen tutorial sobre 
el tema:

http://www-128.ibm.com/developerworks/webservices/library/ws-pyth10.html

Finalmente, espero que no necesites mucha velocidad, porque el XMLRPC que viene 
de serie con Python es desesperantemente lento!! una vez que tuve que usarlo en 
serio desistí y acabé haciendo mi propio RPC (cutre, sin duda, pero más rápido). 
Además, los módulos xmlrpclib y SimpleXMLRPCServer tienen ciertas 
incompatibilidades (que sólo aparecen si haces cosas más o menos raras, tampoco 
es preocupante).




Más información sobre la lista de distribución Python-es