public Tracker newTracker(InetSocketAddress newAddress) throws TrackerException {
   log.debug("new {}()", TrackerImpl.class.getSimpleName());
   Tracker tracker = null;
   BufferedReader reader = null;
   Writer writer = null;
   Socket socket = null;
   try {
     socket = new Socket(netConfig.getProxy());
     socket.setSoTimeout(netConfig.getTrackerReadTimeout());
     log.debug("Connecting to: {}:", newAddress, socket.getPort());
     socket.connect(newAddress, netConfig.getTrackerConnectTimeout());
     reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
     writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
     RequestHandler requestHandler = new RequestHandler(writer, reader);
     tracker = new TrackerImpl(socket, requestHandler);
   } catch (IOException e) {
     IOUtils.closeQuietly(reader);
     IOUtils.closeQuietly(writer);
     IOUtils.closeQuietly(socket);
     throw new TrackerException(e);
   }
   return tracker;
 }
 @Deprecated
 public Proxy getProxy() {
   return netConfig.getProxy();
 }