def handle(self):
     '''
     Handle the incoming connection
     '''
     configStr = self.request.recv(1024)
     config = AutoPerformanceConfig()
     config.fromString(configStr)
     config.host = self.request.getpeername()[0]
     
     print "Server is using peer name of: ", config.host
     
     engine = AutoPerformanceEngine(config)
     
     #Start our server
     try:
         engine.startServer()
     
     
         runCmd = self.request.recv(10)
         if(str(runCmd) != 'tcp'):
             print "Error: unexpected request. Aborting: recv:", runCmd
             return
         data, summaryTcp = engine.runTcp()
         self.sendTcpResults(data, summaryTcp)
         
         runCmd = self.request.recv(10)
         if(str(runCmd) != 'udp'):
             print "Error: unexpected request. Aborting recv:", runCmd
             return
         summaryUdp = engine.runUdp()
         self.sendUdpResults(summaryUdp)
     
     finally:
         #stop server
         print "Done on server side."
         self.request.close()
         engine.stopServer()
         self.finish()