liberia XMLrpclib

Sebastian Lara Menares slara en udec.cl
Mie Dic 19 22:01:34 CET 2007


carlos villa wrote:
> buenos dias alguien me puede explicar que hacen estas lineas de codigo
> de la libreria
> XMLrpclib  estas son las funciones SimpleXMLRPCServer,
> register_function, serve_forever ????
>  y si alguien tiene una API de la libreria o donde conseguirla
> agradeceria mucho...
>
> s = SimpleXMLRPCServer(("",8001))
> s.register_function(insertar)
> s.serve_forever()
>   
Hola,
con register_function() puedes dejar funciones disponibles como 
servicios. Esto también se puede hacer con register_instance(), con lo 
cual registras instancias de una clase para que estén también 
disponibles. serve_forever() es un metodo de la instancia del servidor 
que lo mantiene en un loop infinito esperando eventos.

por ejemplo, un simple servidor sería:

------------------------------
import SimpleXMLRPCServer

def adios():
    return 'Adios!'

class Functions(object):
    def __init__(self):
       pass
    def imprimir(argumento):
       """ Imprime el argumento en pantalla """
       return argumento
   
if __name__ == '__main__':
    server = SimpleXMLRPCServer.SimpleXMLRPCServer("localhost", 8001)
    server.register_instance(Functions())
    server.register_function(adios)
    server.serve_forever()
-----------------------------------

Esto lo puedes probar con un pequeño cliente o directamente desde el 
interprete.

 > import xmlrpclib
 > server = xmlrpclib.Server('http://localhost:8001')
 > print server.imprimir('Hola')
Hola

 > print server.adios()
Adios!!


Hasta por ahí debería funcionar. El resto está en la documentación de 
las bibliotecas de Python para el servidor[1] y el cliente[2]. Todo el 
código de como están implementadas estas bibliotecas esta en la 
distribución de Python.

[1]: http://docs.python.org/lib/module-SimpleXMLRPCServer.html
[2]: http://docs.python.org/lib/module-xmlrpclib.html

-- 
Sebastián Lara Menares
Departamento Ingeniería Eléctrica
Universidad de Concepción

_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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