(-: Fibergeek's Blog :-)
Inhoud blog
  • Python 2 of 3
  • IDA-python: GetStructureIdAt
  • Geslaagd in Microsoft's 70-680 examen
  • minibio: kort vervolg
  • miniboa: een voorbeeld
    Zoeken in blog

    Categorieën
  • Code: C/C++ (2)
  • Code: Powershell (1)
  • Code: Python (8)
  • Code: WPF (2)
  • Programmeren (5)
  • 07-03-2012
    Klik hier om een link te hebben waarmee u dit artikel later terug kunt lezen.minibio: kort vervolg

    Ok, een korte vervolgblog. Als je de "on_connect" en "on_disconnect" niet override van "miniboa", dan houdt hij zelf de clients bij in een dictionary "clients" en via een functie "client_list". Ik heb mijn servertje dus aangepast om deze lijsten zelf aan te beheren. Ik vind deze versie van de code beter.

    from miniboa import TelnetServer

    class Server(TelnetServer):
     def __init__(self):
      TelnetServer.__init__(self)
     
     def shutdown(self):
      self.server_socket.close()
     
     def run(self):
      while True:
       self.poll()
     
     def poll(self):
      TelnetServer.poll(self)
      for client in self.client_list():
       if client.active and client.cmd_ready:
        self.on_command(client)
     
     def broadcast(self, msg):
      for client in self.client_list():
       client.send(msg + "n")
     
     def register_client(self, client):
      self.client_list().append(client)
     
     def unregister_client(self, client):
      self.client_list().remove(client)

    def RunServer():
     server = CreateServer()
     try:
      server.run()
     except KeyboardInterrupt:
      pass
     finally:
      server.shutdown()

    def CreateServer():
     server = Server()
     server.on_connect    = lambda client: my_on_connect   (server, client)
     server.on_disconnect = lambda client: my_on_disconnect(server, client)
     server.on_command    = lambda client: my_on_command   (server, client)
     return server

    def my_on_connect(server, client):
     server.register_client(client)

    def my_on_disconnect(server, client):
     server.unregister_client(client)

    def my_on_command(server, client):
     cmd = client.get_command()
     server.broadcast(msg=cmd)

    RunServer()

    07-03-2012, 00:00 Geschreven door Fibergeek  


    Categorie:Programmeren
    Tags:Python,miniboa,telnet
    Klik hier om een link te hebben waarmee u dit artikel later terug kunt lezen.miniboa: een voorbeeld

    Het onderstaande programma is mijn testprogramma gebasseerd op de voorbeeldprogramma's die met het "miniboa" framework worden meegeleverd. Ik ben niet helemaal tevreden maar dat ligt meer aan het "miniboa" framework zelf. Het liefst van al zou ik de CLIENTS-variable in de Server-class willen hangen, zodat één pythonprogramma meerdere servers zou kunnen draaien.

    from miniboa import TelnetServer

    CLIENTS = []

    class Server(TelnetServer):
     def __init__(self):
      TelnetServer.__init__(self)
     
     def shutdown(self):
      self.server_socket.close()
     
     def run(self):
      while True:
       self.poll()
     
     def poll(self):
      TelnetServer.poll(self)
      for client in CLIENTS:
       if client.active and client.cmd_ready:
        self.on_command(client)

    def RunServer():
     server = CreateServer()
     try:
      server.run()
     except KeyboardInterrupt:
      pass
     finally:
      server.shutdown()

    def CreateServer():
     server = Server()
     server.on_connect    = my_on_connect
     server.on_disconnect = my_on_disconnect
     server.on_command    = my_on_command
     return server

    def my_on_connect(client):
     CLIENTS.append(client)

    def my_on_disconnect(client):
     CLIENTS.remove(client)

    def my_on_command(client):
     cmd = client.get_command()
     broadcast_message(msg=cmd)

    def broadcast_message(msg):
     for client in CLIENTS:
      client.send(msg + "n")

    RunServer()

    07-03-2012, 00:00 Geschreven door Fibergeek  


    Categorie:Code: Python
    Tags:Python,miniboa,telnet
    Archief per week
  • 25/11-01/12 2013
  • 05/11-11/11 2012
  • 07/05-13/05 2012
  • 05/03-11/03 2012
  • 20/02-26/02 2012
  • 13/02-19/02 2012
  • 30/01-05/02 2012
  • 12/12-18/12 2011
  • 05/12-11/12 2011
  • 19/09-25/09 2011
  • 15/08-21/08 2011
  • 01/08-07/08 2011
  • 04/07-10/07 2011
  • 06/06-12/06 2011

    E-mail mij

    Druk op onderstaande knop om mij te e-mailen.


    Gastenboek

    Druk op onderstaande knop om een berichtje achter te laten in mijn gastenboek


    Blog als favoriet !


    Blog tegen de wet? Klik hier.
    Gratis blog op https://www.bloggen.be - Meer blogs