public Networking(Config config) {
    super(); // Gets rid of java.lang.VerifyError
    this.config = config;
    String network = config.getNetwork();
    String[] server = network.split(":");
    String hostname = server[0];
    int port = Integer.parseInt(server[1]);
    
    try {
      sock = new Socket(hostname, port); //TODO SSL conn on port 6697
    } catch (UnknownHostException ex) {
      Logger.getLogger(Networking.class.getName()).log(Level.SEVERE, null, ex);
      err.println("Possible DNS resolution failed");
      //@TODO close streams, connections, etc
      System.exit(-1);
    } catch (IOException ex) {
      Logger.getLogger(Networking.class.getName()).log(Level.SEVERE, null, ex);
      err.println("I/O Error, Check networking");
      //@TODO close streams, connections, etc
      System.exit(-1);
    }
    try {
      bwriter = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
      breader = new BufferedReader(new InputStreamReader(sock.getInputStream()));
    } catch (IOException ex) {
      Logger.getLogger(Networking.class.getName()).log(Level.SEVERE, null, ex);
      err.println("Error getting streams with server");
      //@TODO close streams, connections, etc
      System.exit(-1);
    }
  }