Ссылка SCNetwork
SCNetwork
интерфейс программирования содержит функции, которые приложение может использовать, чтобы определить, может ли то приложение достигнуть удаленного узла и уведомлять систему изменений конфигурации.
Когда пакет данных, отправленный приложением в сетевой стек, может оставить локальный компьютер, удаленный узел считают достижимым. Обратите внимание на то, что достижимость не гарантирует, что пакет данных будет фактически получен узлом.
-
Определяет, является ли указанный сетевой адрес достижимым использованием текущей конфигурации сети.
Оператор осуждения
Посмотрите обсуждение для альтернативы кодирования.
Объявление
Objective C
Boolean SCNetworkCheckReachabilityByAddress ( const struct sockaddr *address, socklen_t addrlen, SCNetworkConnectionFlags *flags );
Параметры
address
Сетевой адрес желаемого узла.
addrlen
Длина, в байтах, адреса.
flags
Указатель на память, что, на выводе, будет заполнено рядом значений SCNetworkConnectionFlags, детализирующих достижимость указанного адреса
Возвращаемое значение
TRUE
если флаги сетевого соединения допустимы;FALSE
если не могло бы быть определено состояние.Обсуждение
Эта функция осуждается, но можно получить эквивалентные результаты с помощью следующего кода:
SCNetworkReachabilityRef target;
SCNetworkConnectionFlags flags = 0;
Boolean ok;
target = SCNetworkReachabilityCreateWithAddress(NULL, address);
ok = SCNetworkReachabilityGetFlags(target, &flags);
CFRelease(target);
Оператор импорта
Objective C
@import SystemConfiguration;
Доступность
Доступный в OS X v10.1 и позже.
Осуждаемый в OS X v10.6.
-
Определяет, являются ли указанный сетевой узел или имя узла достижимым использованием текущей конфигурации сети.
Оператор осуждения
Посмотрите обсуждение для альтернативы кодирования.
Объявление
Objective C
Boolean SCNetworkCheckReachabilityByName ( const char *nodename, SCNetworkConnectionFlags *flags );
Параметры
nodename
Имя узла желаемого узла. Это - то же имя, которое было бы передано
gethostbyname(3)
илиgetaddrinfo(3)
функции.flags
Указатель на память, что, на выводе, будет заполнено рядом значений SCNetworkConnectionFlags, детализирующих достижимость указанного адреса
Возвращаемое значение
TRUE
если флаги сетевого соединения допустимы;FALSE
если не могло бы быть определено состояние.Обсуждение
Эта функция осуждается, но можно получить эквивалентные результаты с помощью следующего кода:
SCNetworkReachabilityRef target;
SCNetworkConnectionFlags flags = 0;
Boolean ok;
target = SCNetworkReachabilityCreateWithName(NULL, name);
ok = SCNetworkReachabilityGetFlags(target, &flags);
CFRelease(target);
Оператор импорта
Objective C
@import SystemConfiguration;
Доступность
Доступный в OS X v10.1 и позже.
Осуждаемый в OS X v10.6.
-
Отправляет уведомление заинтересованным агентам конфигурации для имения их сразу повторяют их конфигурацию по определенному сетевому интерфейсу.
Оператор осуждения
Используйте
SCNetworkInterfaceForceConfigurationRefresh
функция вместо этого.Объявление
Objective C
Boolean SCNetworkInterfaceRefreshConfiguration ( CFStringRef ifName );
Параметры
ifName
Имя BSD сетевого интерфейса, такой как
CFSTR("en0")
.Возвращаемое значение
TRUE
если было отправлено уведомление; иначе,FALSE
.Обсуждение
Эта функция должна быть вызвана корнем (другими словами, пользователь с uid, равным
0
).Оператор импорта
Objective C
@import SystemConfiguration;
Доступность
Доступный в OS X v10.1 и позже.
Осуждаемый в OS X v10.5.
-
Флаги, указывающие, достижимы ли указанное имя сетевого узла или адрес, требуется ли соединение, и может ли некоторое вмешательство пользователя требоваться при установлении соединения.
Объявление
Swift
typealias SCNetworkConnectionFlags = UInt32
Objective C
enum { kSCNetworkFlagsTransientConnection = 1<<0, kSCNetworkFlagsReachable = 1<<1, kSCNetworkFlagsConnectionRequired = 1<<2, kSCNetworkFlagsConnectionAutomatic = 1<<3, kSCNetworkFlagsInterventionRequired = 1<<4, kSCNetworkFlagsIsLocalAddress = 1<<16, kSCNetworkFlagsIsDirect = 1<<17, }; typedef uint32_t SCNetworkConnectionFlags;
Константы
-
kSCNetworkFlagsTransientConnection
kSCNetworkFlagsTransientConnection
Указанное имя узла или адрес могут быть достигнуты через переходное соединение, такое как PPP.
Доступный в OS X v10.1 и позже.
-
kSCNetworkFlagsReachable
kSCNetworkFlagsReachable
Указанное имя узла или адрес могут быть достигнуты с помощью текущей конфигурации сети.
Доступный в OS X v10.1 и позже.
-
kSCNetworkFlagsConnectionRequired
kSCNetworkFlagsConnectionRequired
Указанное имя узла или адрес могут быть достигнуты с помощью текущей конфигурации сети, но должно сначала быть установлено соединение.
Например, это состояние было бы возвращено для коммутируемого соединения, которое не было в настоящее время активно, но могло обработать сетевой трафик для целевой системы.
Доступный в OS X v10.1 и позже.
-
kSCNetworkFlagsConnectionAutomatic
kSCNetworkFlagsConnectionAutomatic
Указанное имя узла или адрес могут быть достигнуты с помощью текущей конфигурации сети, но должно сначала быть установлено соединение.
Любой трафик, направленный к указанному имени или адресу, будет инициировать соединение.
Доступный в OS X v10.1 и позже.
-
kSCNetworkFlagsInterventionRequired
kSCNetworkFlagsInterventionRequired
Указанное имя узла или адрес могут быть достигнуты с помощью текущей конфигурации сети, но должно сначала быть установлено соединение.
Кроме того, некоторая форма вмешательства пользователя потребуется, чтобы устанавливать это соединение, такое как обеспечение пароля, аутентификационного маркера, и т.д.
В настоящее время этот флаг возвращается, когда существует набор на конфигурировании трафика (
ConnectionAutomatic
), попытка соединиться была уже предпринята, и когда с некоторой ошибкой (например, никакой тональный сигнал готовности к набору номера, никакой ответ, неверный пароль, и т.д.) встретились во время автоматической попытки подключения. В этом случае контроллер PPP прекращает пытаться установить соединение, пока не вмешался пользователь.Доступный в OS X v10.1 и позже.
-
kSCNetworkFlagsIsLocalAddress
kSCNetworkFlagsIsLocalAddress
Указанное имя узла или адрес являются тем, связанным с сетевым интерфейсом на существующей системе.
Доступный в OS X v10.3 и позже.
-
kSCNetworkFlagsIsDirect
kSCNetworkFlagsIsDirect
Сетевой трафик к указанному имени узла или адресу не проходит через шлюз, но направляется непосредственно к одному из интерфейсов в системе.
Доступный в OS X v10.3 и позже.
Оператор импорта
Objective C
@import SystemConfiguration;
Swift
import SystemConfiguration
Доступность
Доступный в OS X v10.1 и позже.
-