Examples

"""Echo server"""

import logging
import pygnetic as net


class EchoHandler(net.Handler):
    def net_echo(self, message, **kwargs):
        logging.info('Received message: %s', message)
        msg = message.msg.upper()
        logging.info('Sending: %s', msg)
        self.connection.net_echo(msg, message.msg_id)


def main():
    net.init(logging_lvl=logging.DEBUG, n_adapter='enet')
    net.register('echo', ('msg', 'msg_id'))
    #server = net.Server(port=1337, handler=EchoHandler)
    server = net.Server(port=1337, n_adapter='socket')
    server.handler = EchoHandler
    logging.info('Listening')
    try:
        while True:
            server.update(1000)
    except KeyboardInterrupt:
        pass


if __name__ == '__main__':
    main()
"""Echo client"""

import random
import logging
import pygnetic as net


class EchoHandler(net.Handler):
    def __init__(self):
        self.out_counter = 0
        self.in_counter = 0

    def net_echo(self, message, **kwargs):
        logging.info('Received message: %s', message)
        self.in_counter += 1

    def update(self):
        if self.out_counter < 10 and self.connection.connected:
            msg = ''.join(random.sample('abcdefghijklmnopqrstuvwxyz', 10))
            logging.info('Sending: %s', msg)
            self.connection.net_echo(msg, self.out_counter)
            self.out_counter += 1


def main():
    net.init(logging_lvl=logging.DEBUG, n_adapter='enet')
    net.register('echo', ('msg', 'msg_id'))
    client = net.Client(n_adapter='socket')
    connection = client.connect("localhost", 1337)
    handler = EchoHandler()
    connection.add_handler(handler)
    try:
        while handler.in_counter < 10:
            client.update()
            handler.update()
    except KeyboardInterrupt:
        pass
    finally:
        connection.disconnect()
        client.update()

if __name__ == '__main__':
    main()