Informações sobre a rede

Um aplicativo geralmente exigirá um status de rede ou contexto específico para executar se isto está se conectando a um IP específico, garantindo que somente uma configuração apropriada seja utilizada ou garantindo que o dispositivo esteja online. Embora o AppFramework não seja capaz de controlar alguns destes em um nível de sistema, ele fornece componentes para acessá-los para informar o que o aplicativo faz.

Configurações fornecidas pelo sistema

As configurações de rede são manipuladas e armazenadas pelo dispositivo e normalmente não precisam ser tratadas por um aplicativo. No entanto, para situações em que um aplicativo precisa estar ciente do status da conexão de rede do dispositivo, o componente de rede fornece acesso somente para leitura às configurações de rede conhecidas pelo sistema, permitindo que aplicativos detectem estas conexões e recursos do sistema.

Para muitos aplicativos, tudo o que é especificamente necessário de uma rede é estar online e poder se conectar aos serviços. Tudo o que é necessário para verificar isto é a propriedade isOnline , um valor Booleano que exibe se o dispositivo atualmente está online ou não. Esta propriedade pode ser utilizada para alterar o comportamento do aplicativo para executar funções alternativas que não exigem acesso à rede, ou para exibir uma mensagem de erro se estiver sendo solicitada online.

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."
    }
    }
}

Endereços de rede

O componente NetworkAddress armazena um único endereço IP da rede. Além de ser utilizado ao lado de outros componentes para executar ações, como conectar a um host e configurar um servidor, ele também fornece propriedades para determinar se o endereço tem um propósito especial, como loopback ou multicast.

Um loopback é um de um intervalo específico de endereços IP destinados a enviar sinais de saída para o mesmo computador, normalmente para fins de teste. Para dispositivos IPv4, o intervalo de 127.0.0.0 até 127.255.255.255 atua como endereços de loopback, com o endereço mais típico utilizado sendo 127.0.0.1 e utilizando o localhost do nome. Para o IPv6, o endereço reservado para loopbacks geralmente é simplificado como :: 1, pois o endereço completo é muito longo. A propriedade isLoopback de Boleano do NetworkAddress retornará verdadeiro se o endereço armazenado pelo objeto for um endereço de loopback.

Os endereços de multicast são uma ampla gama de endereços reservados para comunicação do multicast, onde a informação é dirigida a um grupo de computadores de destino. Em aplicativos criados com o AppFramework, o uso mais comum do multicast é para o Protocolo de Datagrama do Usuário (UDP), um protocolo de transmissão que prioriza a velocidade sobre a confiabilidade, mas há muitos outros usos. Para dispositivos IPv4, a gama de endereços de multicast é de 224.0.0.0 até 239.255.255.255, enquanto os endereços IPv6 de multicast utilizam o prefixo ff00::/8. No entanto, ambos os protocolos têm seções destes intervalos reservadas para usos mais específicos do multicast. A propriedade isMulticast de Boleano do NetworkAddress retornará verdadeiro se o endereço armazenado pelo objeto for qualquer tipo de endereço do multicast.

O NetworkAddress também contém a propriedade isNull para identificar endereços nulos não válidos para qualquer host ou interface e o método isInSubnet para determinar se o endereço IP armazenado está em uma determinada subrede. Estas funções podem ser utilizadas para garantir que somente os endereços IP válidos para as necessidades do seu aplicativo sejam aprovados.