Share via


Networking_GetInterfaceConnectionStatus 함수

헤더: #include <applibs/networking.h>

네트워크 인터페이스에 대한 네트워크 연결 상태 가져옵니다. Networking_GetInterfaceConnectionStatus 호출되면 OS는 마지막으로 알려진 상태 반환하고 Networking_InterfaceConnectionStatus 열거형에서 지정된 인터페이스 상태 업데이트하려고 시도합니다.

반환된 Networking_InterfaceConnectionStatus 열거형은 인터페이스, 네트워크 연결, IP 주소 및 인터넷 연결의 마지막으로 알려진 상태 반영합니다. Networking_GetInterfaceConnectionStatus 호출되면 OS는 디바이스에 인터넷 연결이 있는지 확인하기 위해 http://www.msftconnecttest.com 이러한 상태 플래그를 업데이트하고 Azure Sphere OS 네트워킹 요구 사항에 설명된 대로 를 호출하려고 시도합니다.

애플리케이션은 디바이스가 인터넷에 연결되어 있는지를 나타내는 Networking_InterfaceConnectionStatus_ConnectedToInternet 상태 따라 작업을 수행할 수 있습니다. 그러나 여러 가지 이유로 상태 업데이트된 시간과 애플리케이션이 인터넷에 연결하려고 시도하는 시간 사이에 네트워크 또는 인터넷 연결이 손실될 수 있습니다. 따라서 애플리케이션에는 네트워크 및 인터넷 가용성이 변경될 때 스마트 선택을 허용하는 논리가 포함되어야 합니다. 애플리케이션은 연결 오류를 처리하고 그에 따라 조정해야 합니다.

반환된 상태 디바이스가 인터넷에 연결되어 있지 않음을 나타내는 경우 애플리케이션은 디바이스 상태 변경되는 시기를 확인하기 위해 Networking_GetInterfaceConnectionStatus 다시 호출할 수 있습니다.

Networking_InterfaceConnectionStatus_ConnectedToInternet 디바이스가 인터넷에 연결되어 있음을 나타내는 경우 디바이스는 90초마다 두 번 이상 상태 폴링해서는 안 됩니다. 이 연결 상태 함수가 디바이스가 인터넷에 연결되어 있다는 표시를 반복적으로 반환하는 경우 OS는 폴링 간격이 너무 짧으면 상태 검사 제한합니다. 권장되는 애플리케이션 폴링 간격은 하나의 요청/2분입니다.

int Networking_GetInterfaceConnectionStatus(const char *networkInterfaceName, Networking_InterfaceConnectionStatus *outStatus);

매개 변수

  • networkInterfaceName 네트워크 인터페이스의 이름입니다.

  • outStatus네트워크 연결 상태 수신하는 Networking_InterfaceConnectionStatus 열거형에 대한 포인터입니다.

오류

오류가 발생하고 를 오류 값으로 설정 errno 하면 -1을 반환합니다.

  • EFAULT: 매개 변수는 outStatus NULL입니다.

  • ENOENT: 인터페이스가 networkInterfaceName 없습니다.

  • EAGAIN: 네트워킹 스택이 준비되지 않았습니다.

다른 errno 모든 오류도 지정할 수 있습니다. 이러한 오류는 결정적이지 않으며 시스템 업데이트를 통해 동일한 동작이 유지되지 않을 수 있습니다.

반환 값

성공에 대해 0을 반환하고 실패의 경우 -1을 반환합니다. 이 경우 errno 오류 값으로 설정됩니다.

개념 및 샘플