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