Exemple #1
0
def listen4cli(ctrl):
    s = network.listen(None, "50111")
    ctrl.write('Listening on ' + str(s.getsockname()))

    while 1:
        ctrl.write('Accepting...')
        conn, addr = s.accept()
        # Start working thread
        thread = threading.Thread(target=serve1cli, args=(ctrl, conn, addr))
        thread.start()
Exemple #2
0
def listen4cli(ctrl):
    s = network.listen(None, "50111")
    ctrl.write("Listening on " + str(s.getsockname()))

    while 1:
        ctrl.write("Accepting...")
        conn, addr = s.accept()
        # Start working thread
        thread = threading.Thread(target=serve1cli, args=(ctrl, conn, addr))
        thread.start()
Exemple #3
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--limit', default=9.6, type=float,
                        help='number of seconds to run for')
    parser.add_argument('--share-freq', default=0.5, type=float, metavar='SF',
                        help='how often in seconds to report best')
    parser.add_argument('--pop-size', default=1000, type=int, metavar='N',
                        help='number of solutions kept in the population')
    parser.add_argument('--spawn-count', default=100, type=int, metavar='K',
                        help='number of new solutions added each generation')
    parser.add_argument('--link',
                        help='join this network to some other hostname:port')
    parser.add_argument('--port', '-p', type=int, default=8099,
                        help='port to listen on')
    parser.add_argument('--debug', '-v', action='store_true',
                        help='print verbose debugging output')
    group = parser.add_mutually_exclusive_group(required=True)
    group.add_argument('--filename',
                       help='solve a puzzle from a local JSON filename')
    group.add_argument('--workers', type=int,
                       help='create a network with a given number of workers')
    args = parser.parse_args()
    logging.basicConfig(level=logging.DEBUG if args.debug else logging.WARNING)

    if args.filename:
        puzzle = json.load(open(args.filename))
        network.GlobalBest.reset(puzzle['id'])
        result = GrideaWorker(args).solve(puzzle)
        json.dump(result, open(args.filename + '.result', 'w'))
        print 'score={}, result written to {}.result'.format(len(result),
                                                             args.filename)
    else:
        pool = multiprocessing.Pool(args.workers)
        jobs = pool.imap(run_child_process, [args] * args.workers)
        network.listen(args.port)
        if args.link:
            network.connect(args.link)
        reactor.run()
        for _ in jobs:
            pass  # Empty job queue
        pool.terminate()
        pool.join()
Exemple #4
0
 def operate(self):
     while 1:
         msg = recvMsg(self._sock)
         if len(msg) > 0:
             print '>>>', msg
             if msg == 'OPEN':
                 print 'opening...'
                 s = network.listen('::', None)
                 sendMsg(
                     self._sock,
                     str('OPENED:' + self._paddr + '/' +
                         str(s.getsockname()[1])))
                 print 'accepting... [' + self._paddr + ':' + str(
                     s.getsockname()[1]) + ']'
                 conn, addr = s.accept()
                 print 'starting...'
                 # Start garbage thread
                 self._working = 1
                 thread = threading.Thread(target=self.garbageListener,
                                           args=(conn, addr))
                 self._threads.append(thread)
                 thread.start()
             elif msg.startswith('TRAFFIC/'):
                 list = msg[8:].split('/')
                 thost = list[0]
                 tport = list[1]
                 tspeed = list[2]
                 print 'host:', thost, 'port:', tport, 'speed:', tspeed
                 # Start worker thread
                 self._working = 1
                 thread = threading.Thread(target=self.worker,
                                           args=(thost, tport, tspeed))
                 self._threads.append(thread)
                 thread.start()
             elif msg == 'STOP':
                 print 'stopping...'
                 self._working = 0
                 for thread in self._threads:
                     thread.join()
                     self._threads.remove(thread)
                 print '...done!'
             else:
                 print "Unrecognized command"
                 self._working = 0
                 sys.exit()
         else:
             print "Connection has been closed"
             self._working = 0
             sys.exit()
Exemple #5
0
 def operate(self):
     while 1:
         msg = recvMsg(self._sock)
         if len(msg) > 0:
             print '>>>', msg
             if msg == 'OPEN':
                 print 'opening...'
                 s = network.listen('::', None)
                 sendMsg(self._sock, str('OPENED:'+self._paddr+'/'+str(s.getsockname()[1])))
                 print 'accepting... [' + self._paddr + ':' + str(s.getsockname()[1]) + ']'
                 conn, addr = s.accept()
                 print 'starting...'
                 # Start garbage thread
                 self._working = 1
                 thread = threading.Thread(target=self.garbageListener, args=(conn, addr))
                 self._threads.append(thread)
                 thread.start()
             elif msg.startswith('TRAFFIC/'):
                 list = msg[8:].split('/')
                 thost = list[0]
                 tport = list[1]
                 tspeed = list[2]
                 print 'host:', thost, 'port:', tport, 'speed:', tspeed
                 # Start worker thread
                 self._working = 1
                 thread = threading.Thread(target=self.worker, args=(thost, tport, tspeed))
                 self._threads.append(thread)
                 thread.start()
             elif msg == 'STOP':
                 print 'stopping...'
                 self._working = 0
                 for thread in self._threads:
                     thread.join()
                     self._threads.remove(thread)
                 print '...done!'
             else:
                 print "Unrecognized command"
                 self._working = 0
                 sys.exit()
         else:
             print "Connection has been closed"
             self._working = 0
             sys.exit()
Exemple #6
0
def start_server():
	network.listen()