我正在使用python的urllib2库向特定主机发出几个http请求.每次发出请求时,都会创建一个新的tcp和http连接,这需要花费大量时间.有没有办法使用urllib2保持tcp/http连接活着?
我想在我们的一个Web服务器上进行一些性能测试,以查看服务器如何处理大量持久连接.不幸的是,我对HTTP和Web测试并不十分熟悉.这是我迄今为止获得的Python代码:
import http.client
import argparse
import threading
def make_http_connection():
conn = http.client.HTTPConnection(options.server, timeout=30)
conn.connect()
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("num", type=int, help="Number of connections to make (integer)")
parser.add_argument("server", type=str, help="Server and port to connect to. Do not prepend \'http://\' for this")
options = parser.parse_args()
for n in range(options.num):
connThread = threading.Thread(target = make_http_connection, args = ())
connThread.daemon = True
connThread.start()
while True:
try:
pass
except KeyboardInterrupt:
break
Run Code Online (Sandbox Code Playgroud)
我的主要问题是:如何保持这些连接存活?我设置了一个很长的超时,但这是一个非常粗糙的方法,我甚至不确定它会影响连接.只需要每隔一段时间请一个字节或两个字节吗?
(另外,在一个不相关的说明中,有没有比while True:我代码末尾的丑陋块更好的等待键盘中断的程序?)