def __init__(self, ip, port, logger_object): self.ip = ip self.port = port sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.prebind(sock, logger_object) self.bind((ip, port)) if not ip: self.log_info('Computing default hostname', 'warning') hostname = socket.gethostname() try: ip = socket.gethostbyname(hostname) except socket.error: raise ValueError( 'Could not determine IP address for hostname %s, ' 'please try setting an explicit IP address in the "port" ' 'setting of your [inet_http_server] section. For example, ' 'instead of "port = 9001", try "port = 127.0.0.1:9001."' % hostname) try: self.server_name = socket.gethostbyaddr (ip)[0] except socket.error: self.log_info('Cannot do reverse lookup', 'warning') self.server_name = ip # use the IP address as the "hostname" self.postbind()
def __init__ (self, handler, hostname): self.handler = handler self.hostname = hostname try: self.ip = socket.gethostbyname (hostname) except socket.error: raise ValueError("Virtual Hostname %s does not appear to be registered in the DNS" % hostname)
def __init__(self, handler, hostname): self.handler = handler self.hostname = hostname try: self.ip = socket.gethostbyname(hostname) except socket.error: raise ValueError( "Virtual Hostname %s does not appear to be registered in the DNS" % hostname)
def __init__ (self, ip, port, resolver=None, logger_object=None): self.ip = ip self.port = port asyncore.dispatcher.__init__ (self) self.create_socket (socket.AF_INET, socket.SOCK_STREAM) self.handlers = [] if not logger_object: logger_object = logger.file_logger (sys.stdout) self.set_reuse_addr() self.bind ((ip, port)) # lower this to 5 if your OS complains self.listen (1024) host, port = self.socket.getsockname() if not ip: self.log_info('Computing default hostname', 'warning') ip = socket.gethostbyname (socket.gethostname()) try: self.server_name = socket.gethostbyaddr (ip)[0] except socket.error: self.log_info('Cannot do reverse lookup', 'warning') self.server_name = ip # use the IP address as the "hostname" self.server_port = port self.total_clients = counter() self.total_requests = counter() self.exceptions = counter() self.bytes_out = counter() self.bytes_in = counter() if not logger_object: logger_object = logger.file_logger (sys.stdout) if resolver: self.logger = logger.resolving_logger (resolver, logger_object) else: self.logger = logger.unresolving_logger (logger_object) self.log_info ( 'Medusa (V%s) started at %s' '\n\tHostname: %s' '\n\tPort:%d' '\n' % ( VERSION_STRING, time.ctime(time.time()), self.server_name, port, ) )
def __init__(self, ip, port, resolver=None, logger_object=None): self.ip = ip self.port = port asyncore.dispatcher.__init__(self) self.create_socket(socket.AF_INET, socket.SOCK_STREAM) self.handlers = [] if not logger_object: logger_object = logger.file_logger(sys.stdout) self.set_reuse_addr() self.bind((ip, port)) # lower this to 5 if your OS complains self.listen(1024) host, port = self.socket.getsockname() if not ip: self.log_info('Computing default hostname', 'warning') ip = socket.gethostbyname(socket.gethostname()) try: self.server_name = socket.gethostbyaddr(ip)[0] except socket.error: self.log_info('Cannot do reverse lookup', 'warning') self.server_name = ip # use the IP address as the "hostname" self.server_port = port self.total_clients = counter() self.total_requests = counter() self.exceptions = counter() self.bytes_out = counter() self.bytes_in = counter() if not logger_object: logger_object = logger.file_logger(sys.stdout) if resolver: self.logger = logger.resolving_logger(resolver, logger_object) else: self.logger = logger.unresolving_logger(logger_object) self.log_info('Medusa (V%s) started at %s' '\n\tHostname: %s' '\n\tPort:%d' '\n' % ( VERSION_STRING, time.ctime(time.time()), self.server_name, port, ))
sl.append( 'GET /test%d.html HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n' % (request_size, host)) return ''.join(sl) if __name__ == '__main__': import sys if len(sys.argv) != 6: print( 'usage: %s <host> <port> <request-size> <num-requests> <num-connections>\n' % sys.argv[0]) else: host = sys.argv[1] ip = socket.gethostbyname(host) port, request_size, num_requests, num_conns = [ int(i) for i in sys.argv[2:] ] chain = build_request_chain(num_requests, host, request_size) t = timer() for i in range(num_conns): test_client((host, port), chain) asyncore.loop() total_time = t.end() # ok, now do some numbers total_bytes = test_client.total_in
sl = [s] * (num-1) sl.append ( 'GET /test%d.html HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n' % ( request_size, host ) ) return ''.join(sl) if __name__ == '__main__': import sys if len(sys.argv) != 6: print('usage: %s <host> <port> <request-size> <num-requests> <num-connections>\n' % sys.argv[0]) else: host = sys.argv[1] ip = socket.gethostbyname (host) port, request_size, num_requests, num_conns = [int(i) for i in sys.argv[2:]] chain = build_request_chain (num_requests, host, request_size) t = timer() for i in range (num_conns): test_client ((host,port), chain) asyncore.loop() total_time = t.end() # ok, now do some numbers total_bytes = test_client.total_in num_trans = num_requests * num_conns throughput = float (total_bytes) / total_time