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()
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()
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()
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()
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()
def start_server(): network.listen()