Información de red

Normalmente una aplicación requerirá un estado de red específico o un contexto para funcionar ya sea conectada a una red IP específica, asegurando que solamente se usa una configuración apropiada, o asegurando que el dispositivo está en línea en todo momento. Mientras que la AppFramework no es capaz de controlar algunos de estos a nivel de sistema, proporciona componentes para acceder a estas para informar de lo que hace la aplicación.

Configuraciones proporcionadas por el sistema

Las configuraciones de la red se gestionan y se almacenan por el dispositivo y normalmente no necesitan que se gestionen por una aplicación. Sin embargo, para situaciones en las que la aplicación no necesite tener en cuenta el estado de conexión de red del dispositivo, el componente de red proporciona un acceso a las configuraciones de red conocidas del sistema de solo lectura que permite a las aplicaciones detectar estas conexiones y capacidades de sistema.

Para muchas aplicaciones, todo lo que se necesita específicamente de una red es estar en línea y lista para conectar a los servicios. Todo lo que se necesita para revisar eso es la propiedad isOnline, un valor booleano que muestra si un dispositivo está actualmente en línea o no. Esta propiedad se puede utilizar para modificar el comportamiento de la aplicación para llevar a cabo funciones alternas que no requieren acceso a la red o para mostrar un mensaje de error si se requiere estar en línea.

Column {
    anchors {
        left: parent.left
        right: parent.right
        bottom: parent.bottom
        margins: 20 * AppFramework.displayScaleFactor
    }
    spacing: 5
    Item {
        height: 20
        width: parent.width
    }
    Button {
        anchors.horizontalCenter: parent.horizontalCenter
        text: "Sign In"
        onClicked: {
            if (AppFramework.network.isOnline) {
                messageDialogOnline.open();
            } else {
                messageDialogOffline.open();
            }
        }
    MessageDialog {
        id: messageDialogOnline
        title: "Network Connection"
        text: "This device is currently online."
    }
    MessageDialog {
        id: messageDialogOffline
        title: "Network Error"
        text: "Please connect to a network to get started."
    }
    }
}

Direcciones de red

El componente NetworkAddress almacena una sola dirección IP de red. Además de utilizarse junto con otros componentes para llevar a cabo acciones como conectarse a un host y configurar un servidor, también proporciona propiedades para determinar si la dirección tiene un objetivo especial, por ejemplo, un bucle invertido o una multidifusión.

Un bucle invertido es uno de los rangos específicos de direcciones IP destinadas a enviar señales de salida al mismo ordenador, normalmente para fines de prueba. Para los dispositivos IPv4, el rango de 127.0.0.0 a 127.255.255.255 actúa como direcciones de bucle invertido, siendo 127.0.0.1 la dirección típica más utilizada y usando el nombre localhost. Para IPv6, la dirección reservada para bucles invertidos normalmente se simplifica como ::1, ya que la dirección completa es muy larga. La propiedad booleana isLoopback de NetworkAddress devolverá "verdadero" si la dirección almacenada por el objeto es una dirección de bucle invertido.

Las direcciones multidifusión son un amplio rango de direcciones reservadas para la comunicación multidifusión, en la que la información se dirige a un grupo de ordenadores de destino. En aplicaciones que integran AppFramework, el uso más común de multidifusión es User Datagram Protocol (UDP), un protocolo de transmisión que prioriza la velocidad sobre la fiabilidad, pero hay muchos otros usos. Para dispositivos IPv4 el rango de direcciones multidifusión es de 224.0.0.0 hasta 239.255.255.255, mientras que las direcciones multidifusión IPv6 usan el prefijo ff00::/8. Sin embargo, ambos protocolos tienen secciones de estos rangos reservadas para usos más específicos de multidifusión. La propiedad booleana isMulticast de NetworkAddress devolverá "verdadero" si la dirección almacenada por el objeto es cualquier tipo de dirección multidifusión.

NetworkAddress también cuenta con la propiedad isNull para identificar direcciones nulas no válidas para cualquier host o interfaz y con el método isInSubnet para determinar si la dirección IP almacenada está en una subred proporcionada. Estas funciones se pueden utilizar para asegurar que solo se pasan las direcciones IP válidas para las necesidades de su aplicación.