[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[pygame] Example: Simple client and server



----- 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: kernel.no.found@xxxxxxxxx
MSN: kernel.no.found@xxxxxxxxx