def loopbackTCP(server, client, port=0, noisy=True):
 from twisted.internet import reactor
 f = policies.WrappingFactory(protocol.Factory())
 serverWrapper = _FireOnClose(f, server)
 f.noisy = noisy
 f.buildProtocol = (lambda addr: serverWrapper)
 serverPort = reactor.listenTCP(port, f, interface='127.0.0.1')
 clientF = LoopbackClientFactory(client)
 clientF.noisy = noisy
 reactor.connectTCP('127.0.0.1', serverPort.getHost().port, clientF)
 d = clientF.deferred
 d.addCallback((lambda x: serverWrapper.deferred))
 d.addCallback((lambda x: serverPort.stopListening()))
 return d

def loopbackTCP ( server , client , port = 0 , noisy = True ) : from twisted . internet import reactor f = policies . WrappingFactory ( protocol . Factory ( ) ) serverWrapper = _FireOnClose ( f , server ) f . noisy = noisy f . buildProtocol = ( lambda addr : serverWrapper ) serverPort = reactor . listenTCP ( port , f , interface = '127.0.0.1' ) clientF = LoopbackClientFactory ( client ) clientF . noisy = noisy reactor . connectTCP ( '127.0.0.1' , serverPort . getHost ( ) . port , clientF ) d = clientF . deferred d . addCallback ( ( lambda x : serverWrapper . deferred ) ) d . addCallback ( ( lambda x : serverPort . stopListening ( ) ) ) return d
run session between server and client protocol instances over tcp .