def main(): parser = argparse.ArgumentParser() parser.add_argument('-p', '--port', required=True, type=int, help='TCP port used for incoming connections') parser.add_argument('-d', '--directory', required=True, help='Directory containing the challenge binaries') parser.add_argument( '-t', '--timeout', type=int, help= 'The time in seconds that challenges are allowed to run before quitting' ' (default is {} seconds)'.format(ChallengeHandler.chal_timeout)) parser.add_argument('challenge_binaries', nargs='+', help='List of challenge binaries to run on the server') args = parser.parse_args(sys.argv[1:]) # Generate the full paths to all binaries in the request handler cdir = os.path.abspath(args.directory) for chal in args.challenge_binaries: ChallengeHandler.challenges.append(os.path.join(cdir, chal)) # Set challenge timeout if args.timeout and args.timeout > 0: ChallengeHandler.chal_timeout = args.timeout # Start the challenge server ForkingTCPServer.allow_reuse_address = True srv = ForkingTCPServer(('localhost', args.port), ChallengeHandler) try: print('Starting server at localhost:{}'.format(args.port)) srv.serve_forever() except KeyboardInterrupt: pass finally: srv.server_close()
def main(): parser = argparse.ArgumentParser() parser.add_argument('-p', '--port', required=True, type=int, help='TCP port used for incoming connections') parser.add_argument('-d', '--directory', required=True, help='Directory containing the challenge binaries') parser.add_argument('challenge_binaries', nargs='+', help='List of challenge binaries to run on the server') args = parser.parse_args(sys.argv[1:]) # Generate the full paths to all binaries in the request handler cdir = os.path.abspath(args.directory) for chal in args.challenge_binaries: ChallengeHandler.challenges.append(os.path.join(cdir, chal)) # Start the challenge server srv = ForkingTCPServer(('localhost', args.port), ChallengeHandler) try: srv.serve_forever() except KeyboardInterrupt: pass srv.server_close()
#!/usr/bin/python from SocketServer import BaseRequestHandler, TCPServer from SocketServer import ForkingTCPServer, ThreadingTCPServer class EchoHandler(BaseRequestHandler): def handle(self): print "got connection from", self.client_address while True: data = self.request.recv(4096) if data: sent = self.request.send(data) # sendall? else: print "disconnect", self.client_address self.request.close() break if __name__ == "__main__": listen_address = ("0.0.0.0", 2007) server = ForkingTCPServer(listen_address, EchoHandler) server.serve_forever()
from SocketServer import BaseRequestHandler from SocketServer import ForkingTCPServer class EchoHandler(BaseRequestHandler): def handle(self): print "got connenction from", self.client_address while True: data = self.request.recv(4096) if data: sent = self.request.send(data) else: print "disconnect", self.client_address self.request.close() break if __name__ == "__main__": listen_address = ("0.0.0.0", 2007) server = ForkingTCPServer(listen_address, EchoHandler) server.serve_forever()
make_torrent() blocking ''' elif data == "download": print(" server download") ''' libtorrent add param .... add_handle() no block ''' elif data == "seeding": ''' start seeding .. no block ''' print("start seeding") print("recv from client:", data) self.request.sendall(data.upper()) except Exception as e: print(e) break if __name__ == "__main__": TCPServer.allow_reuse_address = True # tcpSerSock = ThreadingTCPServer(ADDR, MsgTransfer) tcpSerSock = ForkingTCPServer(ADDR, MsgTransfer) print 'waiting for connection...' tcpSerSock.serve_forever()
# mail: [email protected] ######################################################################### #!/usr/bin/env python from SocketServer import (TCPServer as TCP,StreamRequestHandler as SRH) from SocketServer import ForkingTCPServer from time import ctime HOST = '127.0.0.1' PORT = 6666 ADDR = (HOST,PORT) class MyRequsetHandler(SRH): def handle(self): while True: #print '...connected from:',self.client_address theline = self.rfile.readline() res = theline.strip() if res != 'quit': if theline: self.wfile.write('[%s] %s' % (ctime(),theline)) else: break tcpServ = ForkingTCPServer(ADDR,MyRequsetHandler) print 'waiting for connection...' tcpServ.serve_forever()
return True def do_GET(self): """ Process the HTTP GET Request """ logging.debug('Processing %s', self.path) if not self.do_netlist(): self.copyfile(urllib.urlopen(self.path, proxies={}), self.wfile) if __name__ == '__main__': parser = OptionParser() parser.add_option('-p', '--port', type='int', help='Listening port number', default=8080) parser.add_option('-v', '--verbose', type='choice', action='store', choices=[k.lower() for k in logging._levelNames.keys() if isinstance(k, basestring)], default=logging.getLevelName(logging.INFO).lower(), help='Set the verbosity of the log level') options, args = parser.parse_args() logging.basicConfig( level=logging.getLevelName(options.verbose.upper()), handlers=[logging.StreamHandler()]) httpd = ForkingTCPServer(('', options.port), Proxy) logging.info('Listening at port: %d', options.port) httpd.serve_forever()
def test_echoserver_fork(): server = ForkingTCPServer(listen_address, EchoHandlerFork) server.serve_forever()