앱을 실행하려면 특정 네트워크 상태나 상황(예시: 앱이 특정 IP에 연결해야 하거나, 적절한 구성만 사용해야 하거나, 기기가 항상 온라인 상태여야 하도록 지정)이 필요한 경우가 많습니다. AppFramework는 시스템 레벨에서 이러한 상태나 상황 중 일부를 제어할 수는 없지만, 이러한 상태나 상황에 접근하여 앱이 수행하는 작업을 알리는 컴포넌트를 제공합니다.
시스템 제공 구성
네트워크 구성은 기기를 통해 처리 및 저장되므로 보통 앱에서 처리할 필요가 없습니다. 그러나 앱이 기기의 네트워크 연결 상태를 인식해야 하는 상황에서는 Network 컴포넌트가 시스템에 확인된 네트워크 구성에 대한 읽기 전용 접근 권한을 제공하므로, 앱이 이러한 시스템 연결과 기능을 감지할 수 있습니다.
대다수 앱의 경우 네트워크에서 특별히 필요한 조건은 앱이 온라인 상태이며 서비스에 연결할 수 있어야 한다는 것뿐입니다. 기기가 현재 온라인 상태인지 여부를 보여 주는 불린(Boolean) 값인 isOnline 속성만 확인하면 됩니다. 이 속성을 사용하면 네트워크에 접근할 필요가 없는 대체 기능을 수행하거나, 앱이 온라인 상태여야 하는 경우 오류 메시지가 나타나도록 앱의 동작을 변경할 수 있습니다.
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."
}
}
}
네트워크 주소
NetworkAddress 컴포넌트는 단일 네트워크 IP 주소를 저장합니다. 이 컴포넌트는 다른 컴포넌트와 함께 호스트에 연결, 서버 설정 등의 작업을 수행하는 데 사용될 뿐 아니라, 주소에 루프백 또는 멀티캐스트와 같은 특수 용도가 있는지를 확인할 수 있는 속성도 제공합니다.
루프백은 보통 테스트용으로 보내는 신호를 동일한 컴퓨터로 전송하는 데 사용되는 IP 주소의 특정 범위 중 하나입니다. IPv4 기기의 경우 127.0.0.0~127.255.255.255 범위가 루프백 주소로 사용되며, 가장 일반적으로 사용되는 주소는 127.0.0.1이고 사용되는 이름은 localhost입니다. IPv6의 경우 루프백용으로 예약된 주소는 전체 주소가 매우 길기 때문에 대개 ::1로 간소화됩니다. 겍체를 통해 저장되는 주소가 루프백 주소이면 NetworkAddress isLoopback 불린(Boolean) 속성은 true를 반환합니다.
멀티캐스트 주소는 멀티캐스트 통신용으로 예약된 광범위한 주소이며, 정보의 주소는 대상 컴퓨터의 특정 그룹으로 지정됩니다. AppFramework를 사용하여 만든 앱에서 멀티캐스트가 가장 흔히 사용되는 사례는 신뢰성보다 속도를 우선적으로 고려하는 전송 프로토콜인 UDP(User Datagram Protocol)이지만 다른 사용 사례도 많습니다. IPv4 기기의 멀티캐스트 주소 범위는 224.0.0.0~239.255.255.255인 반면 IPv6 멀티캐스트 주소는 ff00::/8 접두사를 사용합니다. 그러나 이러한 두 프로토콜에는 모두 더욱 구체적인 멀티캐스트 사용을 위해 예약된 해당 범위의 섹션이 있습니다. 객체를 통해 저장되는 주소가 종류에 관계없이 멀티캐스트 주소이면 NetworkAddress isMulticast 불린(Boolean) 속성은 true를 반환합니다.
NetworkAddress에는 모든 호스트 또는 인터페이스에 대해 null 주소를 유효하지 않은 주소로 식별하는 isNull 속성과, 저장된 IP 주소가 지정된 서브넷에 있는지를 확인하는 isInSubnet 메소드도 포함되어 있습니다. 이러한 함수를 사용하면 앱의 요구에 적합한 IP 주소만 전달되도록 할 수 있습니다.