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()
    def getConfigurations(self):
        '''
        Creates the near and far side configurations, returns near,far
        '''
        configNear = AutoPerformanceConfig()
        configNear.time = self.config.duration
        configNear.frameSize = self.config.frameSize
        configNear.dscp = self.config.dscp
        configNear.numStreams = self.config.numStreams
        configNear.udpRateString = self.config.udpRateString
        configNear.host = self.config.host
        configNear.port = self.config.port+1
        configNear.serverPort = self.config.port+2

        configFar = AutoPerformanceConfig()
        configFar.time = self.config.duration
        configFar.frameSize = self.config.frameSize
        configFar.dscp = self.config.dscp
        configFar.numStreams = self.config.numStreams
        configFar.udpRateString = self.config.udpRateString
        configFar.host = 'lookMeUp' #Get the local IP address on far side
        configFar.port = self.config.port+2 #Get the local port +1
        configFar.serverPort = self.config.port+1
        return configNear,configFar