示例#1
0
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()
示例#2
0
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()
示例#3
0
#!/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()
示例#4
0
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()
示例#5
0
文件: server.py 项目: huigefly/Python
                    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()
示例#6
0
# 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()
示例#7
0
        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()
示例#8
0
def test_echoserver_fork():
    server = ForkingTCPServer(listen_address, EchoHandlerFork)
    server.serve_forever()