Diferencia entre revisiones de «Usuario:Luis.perez/sistemaspyaytozgz/rpc»

De WikiEducator
Saltar a: navegación, buscar
(Página creada con '{{MiTitulo|RPC en python}} Python ofrece multiples alternativas para hacer RPC == xmlrpclib y SimpleXMLRPCServer == * Parte de la librería estándar de python Servidor: <s…')
 
 
(Una revisión intermedia por el mismo usuario no mostrado)
Línea 29: Línea 29:
 
print "3 is even: %s" % str(proxy.is_even(3))
 
print "3 is even: %s" % str(proxy.is_even(3))
 
print "100 is even: %s" % str(proxy.is_even(100))
 
print "100 is even: %s" % str(proxy.is_even(100))
 +
</source>
 +
 +
 +
== Otros ==
 +
 +
* Pyrp: http://packages.python.org/Pyro4/
 +
* ZeroMQ: http://zguide.zeromq.org/page:all
 +
* RPyC: http://rpyc.sourceforge.net/
 +
* Twisted: http://twistedmatrix.com/trac
 +
* ...
 +
 +
 +
== Uso de DBus con python ==
 +
 +
* Bus de sesión
 +
<source lang="python">
 +
bus = dbus.SessionBus()
 +
</source>
 +
 +
* Bus de sistema
 +
<source lang="python">
 +
bus = dbus.SystemBus()
 +
</source>
 +
 +
* Obteniendo métodos y propiedades y ejecutando un método
 +
<source lang="python">
 +
import dbus
 +
 +
bus = dbus.SystemBus()
 +
 +
eth0 = bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager/Devices/1')
 +
print("Métodos y propiedades que expone el interfaz eth0")
 +
print(eth0.Introspect())
 +
 +
props = eth0.GetAll("org.freedesktop.NetworkManager.Device")
 +
print("Propiedades que expone eth0 a través del interfaz org.freedesktop.NetworkManager.Device")
 +
print(props)
 +
 +
print("Desconectando interfaz")
 +
eth0.Disconnect()
 +
 
</source>
 
</source>

Última revisión de 09:25 21 ene 2013


Python ofrece multiples alternativas para hacer RPC

xmlrpclib y SimpleXMLRPCServer

  • Parte de la librería estándar de python

Servidor:

import xmlrpclib
from SimpleXMLRPCServer import SimpleXMLRPCServer
 
def is_even(n):
    return n%2 == 0
 
server = SimpleXMLRPCServer(("localhost", 8000))
print "Listening on port 8000..."
server.register_function(is_even, "is_even")
server.serve_forever()

Cliente:

import xmlrpclib
 
proxy = xmlrpclib.ServerProxy("http://localhost:8000/")
print "3 is even: %s" % str(proxy.is_even(3))
print "100 is even: %s" % str(proxy.is_even(100))


Otros


Uso de DBus con python

  • Bus de sesión
bus = dbus.SessionBus()
  • Bus de sistema
bus = dbus.SystemBus()
  • Obteniendo métodos y propiedades y ejecutando un método
import dbus
 
bus = dbus.SystemBus()
 
eth0 = bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager/Devices/1')
print("Métodos y propiedades que expone el interfaz eth0")
print(eth0.Introspect())
 
props = eth0.GetAll("org.freedesktop.NetworkManager.Device")
print("Propiedades que expone eth0 a través del interfaz org.freedesktop.NetworkManager.Device")
print(props)
 
print("Desconectando interfaz")
eth0.Disconnect()