Example #1
0
def startServer():
    #   MyFactoryThread 실행
    server = jsocket.ServerFactory(MyFactoryThread)
    server.timeout = 2.0
    server.start()

    # take your time
    time.sleep(4)
    try:
        raise Networkerror("oops!")
    except Networkerror:
        print("second error occurred")
        server.stop()
        server.join()
Example #2
0
def main():
    global storage_dir

    parser = argparse.ArgumentParser(description='Sends files to clients.')
    parser.add_argument('-v',
                        action='count',
                        dest='verbose',
                        help='Shows debug messages (default=False)',
                        default=0)
    parser.add_argument('-p',
                        type=int,
                        action='store',
                        dest='port',
                        default=5000,
                        help='TCP Port to use (default=5000)')

    parser.add_argument('-d',
                        type=str,
                        action='store',
                        required=False,
                        dest='storage_dir',
                        default='files',
                        help='Where get the files (default=./files)')

    args = parser.parse_args()
    storage_dir = os.path.abspath(args.storage_dir)
    level = logging.DEBUG if args.verbose > 0 else logging.INFO
    port = args.port

    if port <= 0 or port > 65535:
        logger.error("Invalid port")
        return

    if port < 1024 and not os.geteuid() == 0:
        logger.error("Ports below 1024 require eUID=0 (root)")
        return

    coloredlogs.install(level)
    logger.setLevel(level)

    logger.info("Starting.\n- Port: {}\n- LogLevel: {}\n- Storage: {}".format(
        port, level, storage_dir))

    jserver = jsocket.ServerFactory(ServerFactoryThread,
                                    address='0.0.0.0',
                                    port=port)
    jserver.timeout = 99999
    jserver.start()
    def _process_message(self, obj):
        """ virtual method - Implementer must define protocol """
        if obj != '':
            if obj['message'] == "new connection":
                logger.info("new connection.")
            else:
                logger.info(obj)


if __name__ == "__main__":
    import time
    import jsocket

    server = jsocket.ServerFactory(MyFactoryThread,
                                   address='127.0.0.1',
                                   port=5490)
    server.timeout = 2.0
    server.start()

    time.sleep(1)
    cPids = []
    for i in range(10):
        client = jsocket.JsonClient(address='127.0.0.1', port=5490)
        cPids.append(client)
        client.connect()
        client.send_obj({"message": "new connection", "test": i})
        client.send_obj({"message": i, "key": 1})

    time.sleep(2)
        self.timeout = 2.0

    def _process_message(self, obj):
        """ virtual method - Implementer must define protocol """
        if obj != '':
            if obj['message'] == "new connection":
                logger.info("new connection.")
            else:
                logger.info(obj)


if __name__ == "__main__":
    import time
    import jsocket

    server = jsocket.ServerFactory(MyFactoryThread)
    server.timeout = 2.0
    server.start()

    time.sleep(1)
    cPids = []
    for i in range(10):
        client = jsocket.JsonClient()
        cPids.append(client)
        client.connect()
        client.send_obj({"message": "new connection"})
        client.send_obj({"message": i})

    time.sleep(2)

    for c in cPids: