title: Create new TCP Connections for every HTTP request in python
body: <p>For my college project I am trying to develop a python based traffic generator.I have created 2 CentOS machines on vmware and I am using 1 as my client and 1 as my server machine. I have used IP aliasing technique to increase number of clients and severs using just single client/server machine. Upto now I have created 50 IP alias on my client machine and 10 IP alias on my server machine. I am also using multiprocessing module to generate traffic concurrently from all 50 clients to all 10 servers. I have also developed few profiles(1kb,10kb,50kb,100kb,500kb,1mb) on my server(in /var/www/html directory since I am using Apache Server) and I am using urllib2 to send request to these profiles from my client machine. Here while running my scripts when I monitor number of TCP Connections it is always &lt;50. I want to increase it to say 10000. How do I achieve this? I thought that if a new TCP Connection is established for every new http request, then this goal can be achieved. Am I on right path? If not kindly guide to me correct path.</p>
  
  <pre><code>        '''
  Traffic Generator Script:
  
   Here I have used IP Aliasing to create multiple clients on single vm machine. 
   Same I have done on server side to create multiple servers. I have around 50 clients and 10 servers
  '''
  import multiprocessing
  import urllib2
  import random
  import myurllist    #list of all destination urls for all 10 servers
  import time
  import socbindtry   #script that binds various virtual/aliased client ips to the script
  response_time=[]    #some shared variables
  error_count=multiprocessing.Value('i',0)
  def send_request3():    #function to send requests from alias client ip 1
      opener=urllib2.build_opener(socbindtry.BindableHTTPHandler3)    #bind to alias client ip1
      try:
      tstart=time.time()
      for i in range(myurllist.url):
      x=random.choice(myurllist.url[i])
      opener.open(x).read()
      print "file downloaded:",x
      response_time.append(time.time()-tstart)
      except urllib2.URLError, e:
      error_count.value=error_count.value+1
  def send_request4():    #function to send requests from alias client ip 2
      opener=urllib2.build_opener(socbindtry.BindableHTTPHandler4)    #bind to alias client ip2
      try:
      tstart=time.time()
      for i in range(myurllist.url):
      x=random.choice(myurllist.url[i])
      opener.open(x).read()
      print "file downloaded:",x
      response_time.append(time.time()-tstart)
      except urllib2.URLError, e:
      error_count.value=error_count.value+1
  #50 such functions are defined here for 50 clients
  process=[]
  def func():
      global process
      process.append(multiprocessing.Process(target=send_request3))
      process.append(multiprocessing.Process(target=send_request4))
      process.append(multiprocessing.Process(target=send_request5))
      process.append(multiprocessing.Process(target=send_request6))
  #append 50 functions here
      for i in range(len(process)):
       process[i].start()
      for i in range(len(process)):
       process[i].join()
      print"All work Done..!!"
       return
  start=float(time.time())
  func()
  end=float(time.time())-start
  print end
  </code></pre>