/** Retorna un diccionario con nombres de aplicaciones y numero de conexiones activas en UDP */
 public static HashMap<String, Integer> getUDPActiveAppsConnections(Context context) {
   HashMap<String, Integer> totals = new HashMap<String, Integer>();
   for (SystemSocket socket : SystemSockets.getUDPSockets()) {
     if (!totals.containsKey(socket.getAppName(context)))
       totals.put(socket.getAppName(context), 0);
     totals.put(socket.getAppName(context), totals.get(socket.getAppName(context)) + 1);
   }
   return totals;
 }
  /**
   * @param path el path al archivo especifico del directorio /proc/net/ que se desea parsear
   * @param sockets ArrayList con objetos SystemSocket con información de las conexiones activas
   */
  private static void parseSocketTable(String path, ArrayList<SystemSocket> sockets) {
    String line;
    try {
      BufferedReader socketInfoReader = new BufferedReader(new FileReader(path));
      socketInfoReader.readLine(); // Skip header

      while ((line = socketInfoReader.readLine()) != null) {
        SystemSocket currentConnection =
            new SystemSocket(line, SystemSockets.getSocketTypeByPath(path));
        if (currentConnection.isOutsideActiveConnection()) {
          sockets.add(currentConnection);
        }
      }

      socketInfoReader.close();

    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }