'Connect a client obtained from C{clientFactory} and a server
obtained from the current server factory via an L{IOPump},
then assign them to the appropriate instance variables
@ivar clientFactory: the broker client factory
@ivar clientFactory: L{pb.PBClientFactory} instance
@ivar client: the client broker
@type client: L{pb.Broker}
@ivar server: the server broker
@type server: L{pb.Broker}
@ivar pump: the IOPump connecting the client and server
@type pump: L{IOPump}
@ivar connector: A connector whose connect method recreates
the above instance variables
@type connector: L{twisted.internet.base.IConnector}'

def establishClientAndServer(self, _ignored=None):

    (self.client, self.server, self.pump) = connectServerAndClient(self, self.clientFactory, self.serverFactory)
    self.connectorState = _ReconnectingFakeConnectorState()
    self.connector = _ReconnectingFakeConnector(address.IPv4Address('TCP', '127.0.0.1', 4321), self.connectorState)
    self.connectorState.notifyOnConnect().addCallback(self.establishClientAndServer)
