----- server.py ------
from SimpleXMLRPCServer import SimpleXMLRPCServer
class TinyServer:
def __init__(self):
self._interface = None
self._xmlrpc_server = SimpleXMLRPCServer(("localhost", 8000))
self._xmlrpc_server.register_introspection_functions()
def set_interface(self, interface):
self._interface = interface
self._xmlrpc_server.register_instance(interface)
def get_interface(self):
return self._interface
def start(self):
self._xmlrpc_server.serve_forever()
if __name__ == "__main__":
import random
random.seed()
class MyLogic:
def attack(self, dmg):
return "Attacking: %s damage (%s)" % (str(random.randrange(dmg[0],
dmg[1]+1)), str(dmg[0])+"d"+str(dmg[1]))
server = TinyServer()
server.set_interface(MyLogic())
server.start()
----- client.py ------
from xmlrpclib import ServerProxy
import time
s = ServerProxy("http://localhost:8000")
# Print list of available methods
while 1:
print s.attack((1,5))
time.sleep(3)
---- usage ----
C:\Documents and Settings\Administrador\Escritorio>server.py
(Open other shell and launch client....)
C:\Documents and Settings\Administrador\Escritorio>client.py
Attacking: 2 damage (1d5)
Attacking: 3 damage (1d5)
Attacking: 3 damage (1d5)
....
....
(loop)
Thanks all.
--
Juan José Alonso. KarlsBerg.
eMail: [EMAIL PROTECTED]
MSN: [EMAIL PROTECTED]