Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы SystemConfiguration ссылка SCNetworkReachability

Опции
Развертывание Target:

На этой странице
Язык:

Ссылка SCNetworkReachability

SCNetworkReachability интерфейс программирования позволяет приложению определять состояние текущей конфигурации сети системы и достижимость целевого узла. Когда пакет данных, отправленный приложением в сетевой стек, может оставить локальное устройство, удаленный узел считают достижимым. Достижимость не гарантирует, что пакет данных будет фактически получен узлом.

SCNetworkReachability интерфейс программирования поддерживает синхронное и асинхронную модель. В синхронной модели Вы получаете состояние достижимости путем вызова SCNetworkReachabilityGetFlags функция. В асинхронной модели можно запланировать SCNetworkReachability объект на цикле выполнения потока объекта клиента. Когда состояние достижимости данного удаленного узла изменяется, клиент реализует функцию обратного вызова для получения уведомлений. Обратите внимание на то, что эти функции следуют Базовым соглашениям о присвоении имен Основы. Имеющая функция «Создает», или «Копия» на ее имя возвращает ссылку, которую необходимо выпустить с CFRelease функция.

Для получения информации об обнаружении и интерпретации ошибок, сгенерированных путем вызывания этих функций, посмотрите Ссылку Конфигурации системы.

Функции

  • Создает ссылку достижимости на указанный сетевой адрес.

    Объявление

    Swift

    func SCNetworkReachabilityCreateWithAddress(_ allocator: CFAllocator!, _ address: UnsafePointer<sockaddr>) -> Unmanaged<SCNetworkReachability>!

    Objective C

    SCNetworkReachabilityRef SCNetworkReachabilityCreateWithAddress ( CFAllocatorRef allocator, const struct sockaddr *address );

    Параметры

    allocator

    Средство выделения для использования. Передача NULL или kCFAllocatorDefault использовать средство выделения по умолчанию.

    address

    Адрес желаемого узла. Значение этого параметра копируется в новый объект.

    Возвращаемое значение

    Новая неизменная ссылка достижимости. Необходимо выпустить возвращенное значение.

    Обсуждение

    Можно использовать ссылку достижимости, возвращенную этой функцией для контроля достижимости целевого узла.

    Оператор импорта

    Objective C

    @import SystemConfiguration;

    Swift

    import SystemConfiguration

    Доступность

    Доступный в OS X v10.3 и позже.

  • Создает ссылку достижимости на указанный сетевой адрес.

    Объявление

    Swift

    func SCNetworkReachabilityCreateWithAddressPair(_ allocator: CFAllocator!, _ localAddress: UnsafePointer<sockaddr>, _ remoteAddress: UnsafePointer<sockaddr>) -> Unmanaged<SCNetworkReachability>!

    Objective C

    SCNetworkReachabilityRef SCNetworkReachabilityCreateWithAddressPair ( CFAllocatorRef allocator, const struct sockaddr *localAddress, const struct sockaddr *remoteAddress );

    Параметры

    allocator

    Средство выделения для использования. Передача NULL или kCFAllocatorDefault использовать средство выделения по умолчанию.

    localAddress

    Локальный адрес связался с сетевым соединением. Если NULL, только удаленный адрес представляет интерес. Значение этого параметра копируется в новый объект.

    remoteAddress

    Удаленный адрес связался с сетевым соединением. Если NULL, только локальный адрес представляет интерес. Значение этого параметра копируется в новый объект.

    Возвращаемое значение

    Новая неизменная ссылка достижимости. Необходимо выпустить возвращенное значение.

    Обсуждение

    Можно использовать ссылку достижимости, возвращенную этой функцией для контроля достижимости целевого узла.

    Оператор импорта

    Objective C

    @import SystemConfiguration;

    Swift

    import SystemConfiguration

    Доступность

    Доступный в OS X v10.3 и позже.

  • Создает ссылку достижимости на указанный сетевой узел или имя узла.

    Объявление

    Swift

    func SCNetworkReachabilityCreateWithName(_ allocator: CFAllocator!, _ nodename: UnsafePointer<Int8>) -> Unmanaged<SCNetworkReachability>!

    Objective C

    SCNetworkReachabilityRef SCNetworkReachabilityCreateWithName ( CFAllocatorRef allocator, const char *nodename );

    Параметры

    allocator

    Средство выделения для использования. Передача NULL или kCFAllocatorDefault использовать средство выделения по умолчанию.

    nodename

    Имя узла желаемого узла. Это имя совпадает с, который передал gethostbyname или getaddrinfo функции. Значение этого параметра копируется в новый объект.

    Возвращаемое значение

    Новая неизменная ссылка достижимости. Необходимо выпустить возвращенное значение.

    Обсуждение

    Можно использовать ссылку достижимости, возвращенную этой функцией для контроля достижимости целевого узла.

    Оператор импорта

    Objective C

    @import SystemConfiguration;

    Swift

    import SystemConfiguration

    Доступность

    Доступный в OS X v10.3 и позже.

  • Определяет, является ли указанная сетевая цель достижимым использованием текущей конфигурации сети.

    Объявление

    Swift

    func SCNetworkReachabilityGetFlags(_ target: SCNetworkReachability!, _ flags: UnsafeMutablePointer<SCNetworkReachabilityFlags>) -> Boolean

    Objective C

    Boolean SCNetworkReachabilityGetFlags ( SCNetworkReachabilityRef target, SCNetworkReachabilityFlags *flags );

    Параметры

    target

    Сетевая ссылка связалась с адресом или именем, которое будет проверено на достижимость.

    flags

    Указатель на память, которая, на выводе, заполнена флагами, описывающими достижимость указанной цели. (См. Сетевые Флаги Достижимости для возможных значений.)

    Возвращаемое значение

    TRUE если флаги допустимы; FALSE если не могло бы быть определено состояние.

    Оператор импорта

    Objective C

    @import SystemConfiguration;

    Swift

    import SystemConfiguration

    Доступность

    Доступный в OS X v10.3 и позже.

  • Возвращает идентификатор типа всех SCNetworkReachability экземпляры.

    Объявление

    Swift

    func SCNetworkReachabilityGetTypeID() -> CFTypeID

    Objective C

    CFTypeID SCNetworkReachabilityGetTypeID ( void );

    Возвращаемое значение

    Идентификатор типа всех SCNetworkReachability экземпляры.

    Оператор импорта

    Objective C

    @import SystemConfiguration;

    Swift

    import SystemConfiguration

    Доступность

    Доступный в OS X v10.3 и позже.

  • Присваивает клиент указанной цели, получающей обратные вызовы, когда изменяется достижимость цели.

    Объявление

    Swift

    func SCNetworkReachabilitySetCallback(_ target: SCNetworkReachability!, _ callout: SCNetworkReachabilityCallBack, _ context: UnsafeMutablePointer<SCNetworkReachabilityContext>) -> Boolean

    Objective C

    Boolean SCNetworkReachabilitySetCallback ( SCNetworkReachabilityRef target, SCNetworkReachabilityCallBack callout, SCNetworkReachabilityContext *context );

    Параметры

    target

    Сетевая ссылка связалась с адресом или именем, которое будет проверено на достижимость.

    callout

    Функция, которую вызовут, когда достижимость целевых изменений. Если NULL, текущий клиент для цели удален.

    context

    Контекст достижимости связался с выноской. Это значение может быть NULL.

    Возвращаемое значение

    TRUE если был успешно установлен клиент уведомления; иначе, FALSE.

    Оператор импорта

    Objective C

    @import SystemConfiguration;

    Swift

    import SystemConfiguration

    Доступность

    Доступный в OS X v10.3 и позже.

  • Планирует указанную сетевую цель с указанным циклом выполнения и режимом.

    Объявление

    Swift

    func SCNetworkReachabilityScheduleWithRunLoop(_ target: SCNetworkReachability!, _ runLoop: CFRunLoop!, _ runLoopMode: CFString!) -> Boolean

    Objective C

    Boolean SCNetworkReachabilityScheduleWithRunLoop ( SCNetworkReachabilityRef target, CFRunLoopRef runLoop, CFStringRef runLoopMode );

    Параметры

    target

    Адрес или имя, устанавливающееся для асинхронных уведомлений. Не должен быть NULL.

    runLoop

    Цикл выполнения, на который должна быть запланирована цель. Не должен быть NULL.

    runLoopMode

    Режим, в котором можно запланировать цель. Не должен быть NULL.

    Возвращаемое значение

    TRUE если цель планируется успешно; иначе, FALSE.

    Оператор импорта

    Objective C

    @import SystemConfiguration;

    Swift

    import SystemConfiguration

    Доступность

    Доступный в OS X v10.3 и позже.

  • Не планирует указанную цель от указанного цикла выполнения и режима.

    Объявление

    Swift

    func SCNetworkReachabilityUnscheduleFromRunLoop(_ target: SCNetworkReachability!, _ runLoop: CFRunLoop!, _ runLoopMode: CFString!) -> Boolean

    Objective C

    Boolean SCNetworkReachabilityUnscheduleFromRunLoop ( SCNetworkReachabilityRef target, CFRunLoopRef runLoop, CFStringRef runLoopMode );

    Параметры

    target

    Адрес или имя, устанавливающееся для асинхронных уведомлений. Не должен быть NULL.

    runLoop

    Цикл выполнения, на котором цель должна быть не запланирована. Не должен быть NULL.

    runLoopMode

    Режим, в котором можно не запланировать цель. Не должен быть NULL.

    Возвращаемое значение

    TRUE если цель не запланирована успешно; иначе, FALSE.

    Оператор импорта

    Objective C

    @import SystemConfiguration;

    Swift

    import SystemConfiguration

    Доступность

    Доступный в OS X v10.3 и позже.

  • Обратные вызовы расписаний для указанной цели на указанной очереди отгрузки.

    Объявление

    Swift

    func SCNetworkReachabilitySetDispatchQueue(_ target: SCNetworkReachability!, _ queue: dispatch_queue_t!) -> Boolean

    Objective C

    Boolean SCNetworkReachabilitySetDispatchQueue ( SCNetworkReachabilityRef target, dispatch_queue_t queue );

    Параметры

    target

    Адрес или имя, устанавливающееся для асинхронных уведомлений. Не должен быть NULL.

    queue

    libdispatch очередь, на которой должна работать цель. Передача NULL отключить уведомления и выпустить очередь.

    Возвращаемое значение

    TRUE если цель планируется успешно; иначе, FALSE.

    Оператор импорта

    Objective C

    @import SystemConfiguration;

    Swift

    import SystemConfiguration

    Доступность

    Доступный в OS X v10.6 и позже.

Обратные вызовы

  • Тип функции обратного вызова, используемой, когда достижимость сетевого адреса или смен имени.

    Объявление

    Swift

    typealias SCNetworkReachabilityCallBack = CFunctionPointer<((SCNetworkReachability!, SCNetworkReachabilityFlags, UnsafeMutablePointer<Void>) -> Void)>

    Objective C

    typedef void (*SCNetworkReachabilityCallBack) ( SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void *info );

    Параметры

    target

    Сетевая цель, контролируемая для изменений.

    flags

    Флаги, представляющие состояние достижимости сетевого адреса или имени (см. Сетевые Флаги Достижимости для получения информации об этих флагах).

    info

    Указатель C на указанный пользователями блок данных.

    Оператор импорта

    Objective C

    @import SystemConfiguration;

    Swift

    import SystemConfiguration

    Доступность

    Доступный в OS X v10.3 и позже.

Типы данных

  • Дескриптор к сетевому адресу или имени.

    Объявление

    Swift

    typealias SCNetworkReachabilityRef = SCNetworkReachability

    Objective C

    typedef const struct __SCNetworkReachability * SCNetworkReachabilityRef;

    Оператор импорта

    Objective C

    @import SystemConfiguration;

    Swift

    import SystemConfiguration

    Доступность

    Доступный в OS X v10.3 и позже.

  • Структура, содержащая указанные пользователями данные и обратные вызовы, используемые с SCNetworkReachabilitySetCallback.

    Объявление

    Swift

    struct SCNetworkReachabilityContext { var version: CFIndex var info: UnsafeMutablePointer<Void> var retain: CFunctionPointer<((UnsafePointer<Void>) -> UnsafePointer<Void>)> var release: CFunctionPointer<((UnsafePointer<Void>) -> Void)> var copyDescription: CFunctionPointer<((UnsafePointer<Void>) -> Unmanaged<CFString>!)> }

    Objective C

    typedef struct { CFIndex version; void * info; const void *(*retain)(const void *info); void (*release)(const void *info); CFStringRef (*copyDescription)(const void *info); } SCNetworkReachabilityContext;

    Оператор импорта

    Objective C

    @import SystemConfiguration;

    Swift

    import SystemConfiguration

    Доступность

    Доступный в OS X v10.3 и позже.

Константы

  • Флаги, указывающие достижимость имени сетевого узла или адреса, включая то, требуется ли соединение, и могло ли бы некоторое вмешательство пользователя требоваться при установлении соединения.

    Объявление

    Swift

    typealias SCNetworkReachabilityFlags = UInt32

    Objective C

    enum { kSCNetworkReachabilityFlagsTransientConnection = 1<<0, kSCNetworkReachabilityFlagsReachable = 1<<1, kSCNetworkReachabilityFlagsConnectionRequired = 1<<2, kSCNetworkReachabilityFlagsConnectionOnTraffic = 1<<3, kSCNetworkReachabilityFlagsInterventionRequired = 1<<4, kSCNetworkReachabilityFlagsConnectionOnDemand = 1<<5, kSCNetworkReachabilityFlagsIsLocalAddress = 1<<16, kSCNetworkReachabilityFlagsIsDirect = 1<<17, kSCNetworkReachabilityFlagsConnectionAutomatic = kSCNetworkReachabilityFlagsConnectionOnTraffic }; typedef uint32_t SCNetworkReachabilityFlags;

    Константы

    • kSCNetworkReachabilityFlagsTransientConnection

      kSCNetworkReachabilityFlagsTransientConnection

      Указанное имя узла или адрес могут быть достигнуты через переходное соединение, такое как PPP.

      Доступный в OS X v10.6 и позже.

    • kSCNetworkReachabilityFlagsReachable

      kSCNetworkReachabilityFlagsReachable

      Указанное имя узла или адрес могут быть достигнуты с помощью текущей конфигурации сети.

      Доступный в OS X v10.6 и позже.

    • kSCNetworkReachabilityFlagsConnectionRequired

      kSCNetworkReachabilityFlagsConnectionRequired

      Указанное имя узла или адрес могут быть достигнуты с помощью текущей конфигурации сети, но должно сначала быть установлено соединение. Если этот флаг установлен, kSCNetworkReachabilityFlagsConnectionOnTraffic флаг, kSCNetworkReachabilityFlagsConnectionOnDemand флаг, или kSCNetworkReachabilityFlagsIsWWAN флаг также обычно устанавливается указать тип требуемого соединения. Если пользователь должен вручную сделать соединение, kSCNetworkReachabilityFlagsInterventionRequired флаг также установлен.

      Доступный в OS X v10.6 и позже.

    • kSCNetworkReachabilityFlagsConnectionOnTraffic

      kSCNetworkReachabilityFlagsConnectionOnTraffic

      Указанное имя узла или адрес могут быть достигнуты с помощью текущей конфигурации сети, но должно сначала быть установлено соединение. Любой трафик, направленный к указанному имени или адресу, будет инициировать соединение.

      Этот флаг ранее назвали kSCNetworkReachabilityFlagsConnectionAutomatic.

      Доступный в OS X v10.6 и позже.

    • kSCNetworkReachabilityFlagsInterventionRequired

      kSCNetworkReachabilityFlagsInterventionRequired

      Указанное имя узла или адрес могут быть достигнуты с помощью текущей конфигурации сети, но должно сначала быть установлено соединение.

      Кроме того, некоторая форма вмешательства пользователя потребуется, чтобы устанавливать это соединение, такое как обеспечение пароля, аутентификационного маркера, и т.д.

      В настоящее время этот флаг возвращается только, когда существует набор на конфигурировании трафика (kSCNetworkReachabilityFlagsConnectionOnTraffic), попытка соединиться была уже предпринята, и когда некоторая ошибка (такая как никакой тональный сигнал готовности к набору номера, никакой ответ, неверный пароль, и т.д.) произошла во время автоматической попытки подключения. В этом случае контроллер PPP прекращает пытаться установить соединение, пока не вмешался пользователь.

      Доступный в OS X v10.6 и позже.

    • kSCNetworkReachabilityFlagsConnectionOnDemand

      kSCNetworkReachabilityFlagsConnectionOnDemand

      Указанное имя узла или адрес могут быть достигнуты с помощью текущей конфигурации сети, но должно сначала быть установлено соединение. Соединение будет установлено «По требованию» CFSocketStream интерфейс программирования (см. Дополнения Сокета CFStream для получения информации об этом). Другие функции не установят соединение.

      Доступный в OS X v10.6 и позже.

    • kSCNetworkReachabilityFlagsIsLocalAddress

      kSCNetworkReachabilityFlagsIsLocalAddress

      Указанное имя узла или адрес являются тем, связанным с сетевым интерфейсом на существующей системе.

      Доступный в OS X v10.6 и позже.

    • kSCNetworkReachabilityFlagsIsDirect

      kSCNetworkReachabilityFlagsIsDirect

      Сетевой трафик к указанному имени узла или адресу не пройдет через шлюз, но направляется непосредственно к одному из интерфейсов в системе.

      Доступный в OS X v10.6 и позже.

    • kSCNetworkReachabilityFlagsConnectionAutomatic

      kSCNetworkReachabilityFlagsConnectionAutomatic

      Указанное имя узла или адрес могут быть достигнуты с помощью текущей конфигурации сети, но должно сначала быть установлено соединение. Любой трафик, направленный к указанному имени или адресу, будет инициировать соединение. Этот флаг является синонимом для kSCNetworkReachabilityFlagsConnectionOnTraffic.

      Доступный в OS X v10.6 и позже.

    Оператор импорта

    Objective C

    @import SystemConfiguration;

    Swift

    import SystemConfiguration

    Доступность

    Доступный в OS X v10.6 и позже.