anchor.diff:  import 'dart:io';
   import 'dart:async';
   
  -// you can modify to set following parameters as command line arguments
  +// modify here to set following parameters using command line arguments
   var serverHost = InternetAddress.LOOPBACK_IP_V4;
   int proxyPort = 12345;
   int serverPort = 8080;
  
positive.code: 
  // log out current connections for debug
  void logCurrentConnections() {
    log('Current connections (client side socket : server side socket) :');
    connections.forEach((client, server){
      log('${client.hashCode} : ${server.hashCode}');
    });
  }
  
negative.code:   }
  }
  
  // connect to the server and set call back for outbound data
  Future connectToServer(Socket clientSocket) {
    var completer = new Completer();
    Socket.connect(serverHost, serverPort).then((serverSocket) {
      log('Proxy establised a connection for incomig socket ${clientSocket.hashCode}'
        ' with server socket ${serverSocket.hashCode}');
      connections[clientSocket] = serverSocket; // add to the connection table
      // set outbound call back here
      serverSocket.listen((outboundData) {
        processOutbound(clientSocket, serverSocket, outboundData);
      }, onDone: () {
        log('Server side socket disconnected (${clientSocket.hashCode}, ${serverSocket.hashCode})');
        clientSocket.destroy();
        connections.remove(clientSocket);
    //  logCurrentConnections(); // **** for debugging ****
  