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

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

Разработчик

Ссылка платформы CoreFoundation ссылка CFSocket

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

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

Ссылка CFSocket

CFSocket является каналом передачи, реализованным с сокетом BSD.

Для большей части использования этого API необходимо будет включать три заголовка:

  • #import <CoreFoundation/CoreFoundation.h> #include <sys/socket.h> #include <netinet/in.h>

CFSocket может быть создан с нуля с CFSocketCreate и CFSocketCreateWithSocketSignature. Объекты CFSocket могут также быть созданы для обертывания существующего сокета BSD путем вызова CFSocketCreateWithNative. Наконец, можно создать CFSocket и соединиться одновременно с удаленным узлом путем вызова CFSocketCreateConnectedToSocketSignature.

Для прислушиваний к сообщениям необходимо создать источник цикла выполнения с CFSocketCreateRunLoopSource и добавьте его к циклу выполнения с CFRunLoopAddSource. Можно выбрать типы действий сокета, такие как попытки подключения или поступления данных, та причина источник, чтобы запустить и вызвать функцию обратного вызова CFSOCKET. Для отправки данных Вы храните данные в CFData и вызове CFSocketSendData.

В отличие от Маха и портов сообщения, коммуникации поддержки сокетов по сети.

Функции

  • Создает объект CFSocket указанного протокола и типа.

    Объявление

    Swift

    func CFSocketCreate(_ allocator: CFAllocator!, _ protocolFamily: Int32, _ socketType: Int32, _ `protocol`: Int32, _ callBackTypes: CFOptionFlags, _ callout: CFSocketCallBack, _ context: UnsafePointer<CFSocketContext>) -> CFSocket!

    Objective C

    CFSocketRef CFSocketCreate ( CFAllocatorRef allocator, SInt32 protocolFamily, SInt32 socketType, SInt32 protocol, CFOptionFlags callBackTypes, CFSocketCallBack callout, const CFSocketContext *context );

    Параметры

    allocator

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

    protocolFamily

    Семейство протокола для сокета. Если отрицательный или 0 передается, значения по умолчанию сокета к PF_INET.

    socketType

    Тип сокета для создания. Если protocolFamily PF_INET и socketType отрицательно или 0, значения по умолчанию типа сокета к SOCK_STREAM.

    protocol

    Протокол для сокета. Если protocolFamily PF_INET и protocol отрицательно или 0, значения по умолчанию сокетного протокола к IPPROTO_TCP если socketType SOCK_STREAM или IPPROTO_UDP если socketType SOCK_DGRAM.

    callBackTypes

    Комбинация битового «ИЛИ» типов действия сокета, которое должно вызвать callout быть вызванным. Посмотрите Типы обратного вызова для возможных значений действия.

    callout

    Функция для вызова, когда одно из действий, обозначенных callBackTypes происходит.

    context

    Структура, содержащая контекстную информацию для объекта CFSocket. Функция копирует информацию из структуры, таким образом, память, которой указывают context не должен сохраняться вне вызова функции. Может быть NULL.

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

    Новый объект CFSocket, или NULL если произошла ошибка. Владение соблюдает Создать Правило.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Создает объект CFSocket и открывает соединение с удаленным сокетом.

    Объявление

    Swift

    func CFSocketCreateConnectedToSocketSignature(_ allocator: CFAllocator!, _ signature: UnsafePointer<CFSocketSignature>, _ callBackTypes: CFOptionFlags, _ callout: CFSocketCallBack, _ context: UnsafePointer<CFSocketContext>, _ timeout: CFTimeInterval) -> CFSocket!

    Objective C

    CFSocketRef CFSocketCreateConnectedToSocketSignature ( CFAllocatorRef allocator, const CFSocketSignature *signature, CFOptionFlags callBackTypes, CFSocketCallBack callout, const CFSocketContext *context, CFTimeInterval timeout );

    Параметры

    allocator

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

    signature

    A CFSocketSignature идентификация протокола связи и адреса, с которым должен соединиться объект CFSocket.

    callBackTypes

    Комбинация битового «ИЛИ» типов действия сокета, которое должно вызвать callout быть вызванным. Посмотрите Типы обратного вызова для возможных значений действия.

    callout

    Функция для вызова, когда одно из действий, обозначенных callBackTypes происходит.

    context

    Структура, содержащая контекстную информацию для объекта CFSocket. Функция копирует информацию из структуры, таким образом, память, которой указывают context не должен сохраняться вне вызова функции. Может быть NULL.

    timeout

    Время для ожидания соединения для следования. Если отрицательная величина используется, эта функция не ожидает соединения и вместо этого позволяет попытке подключения произойти в фоновом режиме. Если callBackTypes включает kCFSocketConnectCallBack, когда фоновая связь успешно выполнится или прервется, Вы получите обратный вызов.

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

    Новый объект CFSocket, или NULL если произошла ошибка. Владение соблюдает Создать Правило.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Создает объект CFSocket для существующего ранее собственного сокета.

    Объявление

    Swift

    func CFSocketCreateWithNative(_ allocator: CFAllocator!, _ sock: CFSocketNativeHandle, _ callBackTypes: CFOptionFlags, _ callout: CFSocketCallBack, _ context: UnsafePointer<CFSocketContext>) -> CFSocket!

    Objective C

    CFSocketRef CFSocketCreateWithNative ( CFAllocatorRef allocator, CFSocketNativeHandle sock, CFOptionFlags callBackTypes, CFSocketCallBack callout, const CFSocketContext *context );

    Параметры

    allocator

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

    sock

    Собственный сокет, для которого можно создать объект CFSocket.

    callBackTypes

    Комбинация битового «ИЛИ» типов действия сокета, которое должно вызвать callout быть вызванным. Посмотрите Типы обратного вызова для возможных значений действия.

    callout

    Функция для вызова, когда одно из действий, обозначенных callBackTypes происходит.

    context

    Структура, содержащая контекстную информацию для объекта CFSocket. Функция копирует информацию из структуры, таким образом, память, которой указывают context не должен сохраняться вне вызова функции. Может быть NULL.

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

    Новый объект CFSocket, или NULL если произошла ошибка. Если объект CFSocket уже существует для sock, функция возвращает существующий ранее объект вместо того, чтобы создать новый объект; context, callout, и callBackTypes параметры проигнорированы в этом случае. Владение соблюдает Создать Правило.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Создает объект CFSocket использование информации от структуры CFSocketSignature.

    Объявление

    Swift

    func CFSocketCreateWithSocketSignature(_ allocator: CFAllocator!, _ signature: UnsafePointer<CFSocketSignature>, _ callBackTypes: CFOptionFlags, _ callout: CFSocketCallBack, _ context: UnsafePointer<CFSocketContext>) -> CFSocket!

    Objective C

    CFSocketRef CFSocketCreateWithSocketSignature ( CFAllocatorRef allocator, const CFSocketSignature *signature, CFOptionFlags callBackTypes, CFSocketCallBack callout, const CFSocketContext *context );

    Параметры

    allocator

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

    signature

    A CFSocketSignature идентификация протокола связи и адреса, с которым можно создать объект CFSocket.

    callBackTypes

    Комбинация битового «ИЛИ» типов действия сокета, которое должно вызвать callout быть вызванным. Посмотрите Типы обратного вызова для возможных значений действия.

    callout

    Функция для вызова, когда одно из действий, обозначенных callBackTypes происходит.

    context

    Структура, содержащая контекстную информацию для объекта CFSocket. Функция копирует информацию из структуры, таким образом, память, которой указывают context не должен сохраняться вне вызова функции. Может быть NULL.

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

    Новый объект CFSocket, или NULL если произошла ошибка. Владение соблюдает Создать Правило.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Возвращает локальный адрес объекта CFSocket.

    Объявление

    Swift

    func CFSocketCopyAddress(_ s: CFSocket!) -> CFData!

    Objective C

    CFDataRef CFSocketCopyAddress ( CFSocketRef s );

    Параметры

    s

    CFSocket возражают для исследования.

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

    Локальный адрес, сохраненный как a struct sockaddr подходящий для семейства протокола (struct sockaddr_in или struct sockaddr_in6, например) в объекте CFData, s. Владение соблюдает Создать Правило.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Возвращает удаленный адрес, с которым подключен объект CFSocket.

    Объявление

    Swift

    func CFSocketCopyPeerAddress(_ s: CFSocket!) -> CFData!

    Objective C

    CFDataRef CFSocketCopyPeerAddress ( CFSocketRef s );

    Параметры

    s

    CFSocket возражают для исследования.

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

    Удаленный адрес, сохраненный как a struct sockaddr подходящий для семейства протокола (struct sockaddr_in или struct sockaddr_in6, например то) в объекте CFData, к который s соединяется. Владение соблюдает Создать Правило.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFSocketDisableCallBacks(_ s: CFSocket!, _ callBackTypes: CFOptionFlags)

    Objective C

    void CFSocketDisableCallBacks ( CFSocketRef s, CFOptionFlags callBackTypes );

    Параметры

    s

    CFSocket возражают для изменения.

    callBackTypes

    Комбинация битового «ИЛИ» типов действия CFSocket, которые не должны вызывать функцию обратного вызова s быть вызванным. Посмотрите Типы обратного вызова для списка типов обратного вызова.

    Обсуждение

    Если Вы больше не хотите определенные типы обратных вызовов, которые Вы запросили при создании s, можно использовать эту функцию для временного отключения обратного вызова. Использовать CFSocketEnableCallBacks повторно включить тип обратного вызова.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Включает функцию обратного вызова объекта CFSocket для определенных типов действия сокета.

    Объявление

    Swift

    func CFSocketEnableCallBacks(_ s: CFSocket!, _ callBackTypes: CFOptionFlags)

    Objective C

    void CFSocketEnableCallBacks ( CFSocketRef s, CFOptionFlags callBackTypes );

    Параметры

    s

    CFSocket возражают для изменения.

    callBackTypes

    Комбинация битового «ИЛИ» типов действия CFSocket, которые должны вызвать функцию обратного вызова s быть вызванным. Посмотрите Типы обратного вызова для списка типов обратного вызова.

    Обсуждение

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

    Этот вызов не влияет, будет ли тип обратного вызова автоматически повторно включен в будущем; использовать CFSocketSetSocketFlags если Вы хотите установить тип обратного вызова, который будет повторно включен автоматически.

    Обязательно включите только типы обратного вызова, которыми Ваш объект CFSocket фактически обладает и запросил при создании объекта CFSocket; результат включения других типов обратного вызова не определен.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Возвращает контекстную информацию для объекта CFSocket.

    Объявление

    Swift

    func CFSocketGetContext(_ s: CFSocket!, _ context: UnsafeMutablePointer<CFSocketContext>)

    Objective C

    void CFSocketGetContext ( CFSocketRef s, CFSocketContext *context );

    Параметры

    s

    CFSocket возражают для исследования.

    context

    Указатель тот, на структуру, в который контекстная информация для s должен быть скопирован. Возвращаемой информацией обычно является та же информация, которой Вы передали CFSocketCreate, CFSocketCreateConnectedToSocketSignature, CFSocketCreateWithNative, или CFSocketCreateWithSocketSignature при создании объекта CFSocket. Однако, если CFSocketCreateWithNative возвращенный кэшируемый CFSocket возражают вместо того, чтобы создать новый объект, context заполнено информацией от исходного объекта CFSocket вместо информации, которую Вы передали функции.

    Обсуждение

    Номер версии контекста для CFSocket в настоящее время 0. Прежде, чем вызвать эту функцию, необходимо инициализировать version элемент context к 0.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Возвращает собственный сокет, связанный с объектом CFSocket.

    Объявление

    Swift

    func CFSocketGetNative(_ s: CFSocket!) -> CFSocketNativeHandle

    Objective C

    CFSocketNativeHandle CFSocketGetNative ( CFSocketRef s );

    Параметры

    s

    CFSocket возражают для исследования.

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

    Собственный сокет связался с s. Если s был лишен законной силы, возвраты -1, INVALID_SOCKET.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFSocketGetSocketFlags(_ s: CFSocket!) -> CFOptionFlags

    Objective C

    CFOptionFlags CFSocketGetSocketFlags ( CFSocketRef s );

    Параметры

    s

    CFSocket для исследования.

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

    Комбинация битового «ИЛИ» флагов, управляющих поведением s. См. Флаги CFSocket для списка доступных флагов.

    Обсуждение

    Посмотрите CFSocketSetSocketFlags для подробных данных, на какой флаги среднего значения CFSocket.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Связывает локальный адрес с объектом CFSocket и конфигурирует его для слушания.

    Объявление

    Swift

    func CFSocketSetAddress(_ s: CFSocket!, _ address: CFData!) -> CFSocketError

    Objective C

    CFSocketError CFSocketSetAddress ( CFSocketRef s, CFDataRef address );

    Параметры

    s

    CFSocket возражают для изменения.

    address

    Объект CFData, содержащий a struct sockaddr подходящий для семейства протокола s (struct sockaddr_in или struct sockaddr_in6, например). Этот объект данных используется только на время вызова функции.

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

    Код ошибки, указывающий успешность или неуспешность.

    Обсуждение

    Эта функция связывает сокет путем вызова bind, и если сокет поддержки это, конфигурирует сокет для слушания путем вызова listen с задолженностью 256.

    Один раз s связывается с address, В зависимости от протокола сокета другие процессы и компьютеры могут соединиться с s.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Флаги наборов, управляющие определенными способами поведения объекта CFSocket.

    Объявление

    Swift

    func CFSocketSetSocketFlags(_ s: CFSocket!, _ flags: CFOptionFlags)

    Objective C

    void CFSocketSetSocketFlags ( CFSocketRef s, CFOptionFlags flags );

    Параметры

    s

    CFSocket возражают для изменения.

    flags

    Комбинация битового «ИЛИ» флагов, управляющих поведением s. См. Флаги CFSocket для списка доступных флагов.

    Обсуждение

    flags параметр управляет, повторно включены ли обратные вызовы данного типа автоматически после того, как они инициированы, и закрывается ли базовый собственный сокет когда s лишен законной силы.

    Чтобы установить и очистить флаги, необходимо установить и биты маски в наборе флага, соответственно. Во-первых, вызвать CFSocketGetSocketFlags, тогда измените возвращенное значение. Например:

    • CFOptionFlags sockopt = CFSocketGetSocketFlags (mysock );
    • /* Set the read callback to be automatically reenabled. */
    • sockopt |= kCFSocketAutomaticallyReenableReadCallBack;
    • /* Clear the close-on-invalidate flag. */
    • sockopt &= ~kCFSocketCloseOnInvalidate;
    • CFSocketSetSocketFlags(s, sockopt);

    По умолчанию kCFSocketReadCallBack, kCFSocketAcceptCallBack, и kCFSocketDataCallBack обратные вызовы автоматически повторно включены после того, как они будут инициированы, тогда как kCFSocketWriteCallBack обратные вызовы не; kCFSocketConnectCallBack обратные вызовы могут только произойти один раз, таким образом, им нельзя повторно включить.

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

    Будьте осторожны относительно автоматического перевключения обратные вызовы записи и чтение. Если Вы сделаете, то обратные вызовы будут неоднократно вызывать, пока сокет остается читаемым или перезаписываемым, соответственно.

    Обязательно установите эти флаги только для типов обратного вызова, которыми фактически обладает Ваш объект CFSocket; результат установки их для других типов обратного вызова не определен.

    По умолчанию базовый собственный сокет закрывается когда s лишен законной силы. Отключить это, ясное (нуль) kCFSocketCloseOnInvalidate флаг. Это может быть полезно, когда Вы хотите уничтожить CFSocket, возражают, но продолжают использовать базовый собственный сокет. Объект CFSocket должен все еще быть лишен законной силы, когда Вам больше не нужен он.

    Не закрывайтесь базовый собственный сокет, не лишая законной силы CFSocket возражают сначала.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    func CFSocketConnectToAddress(_ s: CFSocket!, _ address: CFData!, _ timeout: CFTimeInterval) -> CFSocketError

    Objective C

    CFSocketError CFSocketConnectToAddress ( CFSocketRef s, CFDataRef address, CFTimeInterval timeout );

    Параметры

    s

    CFSocket возражают, с которым можно соединиться с address.

    address

    Объект CFData, содержащий a struct sockaddr подходящий для семейства протокола s (struct sockaddr_in или struct sockaddr_in6, например), указывая удаленный адрес, с которым можно соединиться. Этот объект данных используется только на время вызова функции.

    timeout

    Время для ожидания соединения для следования. Если отрицательная величина используется, эта функция не ожидает соединения и вместо этого позволяет попытке подключения произойти в фоновом режиме. Если s требуемый a kCFSocketConnectCallBack, когда фоновая связь успешно выполнится или прервется, Вы получите обратный вызов.

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

    Код ошибки, указывающий успешность или неуспешность попытки подключения.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Создает объект CFRunLoopSource для объекта CFSocket.

    Объявление

    Swift

    func CFSocketCreateRunLoopSource(_ allocator: CFAllocator!, _ s: CFSocket!, _ order: CFIndex) -> CFRunLoopSource!

    Objective C

    CFRunLoopSourceRef CFSocketCreateRunLoopSource ( CFAllocatorRef allocator, CFSocketRef s, CFIndex order );

    Параметры

    allocator

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

    s

    CFSocket возражают, для которого можно создать источник цикла выполнения.

    order

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

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

    Новые CFRunLoopSource возражают для s. Владение соблюдает Создать Правило.

    Обсуждение

    Источник цикла выполнения автоматически не добавляется к циклу выполнения. Для добавления источника к циклу выполнения использовать CFRunLoopAddSource.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Возвращает идентификатор типа для непрозрачного типа CFSocket.

    Объявление

    Swift

    func CFSocketGetTypeID() -> CFTypeID

    Objective C

    CFTypeID CFSocketGetTypeID ( void );

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

    Идентификатор типа для непрозрачного типа CFSocket.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Лишает законной силы объект CFSocket, мешая ему отправить или больше получать сообщения.

    Объявление

    Swift

    func CFSocketInvalidate(_ s: CFSocket!)

    Objective C

    void CFSocketInvalidate ( CFSocketRef s );

    Параметры

    s

    CFSocket возражают для лишения законной силы.

    Обсуждение

    Необходимо всегда лишать законной силы объект сокета, когда Вы посредством использования его. Лишение законной силы объекта CFSocket препятствует объекту отправить или больше получать сообщения, но не выпускает сам объект сокета.

    Если источник цикла выполнения создавался для s, источник цикла выполнения лишен законной силы.

    Если обратный вызов выпуска был указан в CFSocketContext объект, это вызовы функции это для выпуска объекта в info поле (который был предоставлен когда s создавался).

    По умолчанию этот вызов закрывает базовый сокет. Если Вы явно очистились kCFSocketCloseOnInvalidate флаг путем вызова CFSocketSetSocketFlags, необходимо закрыть сокет сами после вызывания этой функции.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Возвращает булево значение, указывающее, допустим ли объект CFSocket и в состоянии отправить или получить сообщения.

    Объявление

    Swift

    func CFSocketIsValid(_ s: CFSocket!) -> Boolean

    Objective C

    Boolean CFSocketIsValid ( CFSocketRef s );

    Параметры

    s

    CFSocket возражают для исследования.

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

    true если s может использоваться для коммуникации, иначе false.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Отправляет данные по объекту CFSocket.

    Объявление

    Swift

    func CFSocketSendData(_ s: CFSocket!, _ address: CFData!, _ data: CFData!, _ timeout: CFTimeInterval) -> CFSocketError

    Objective C

    CFSocketError CFSocketSendData ( CFSocketRef s, CFDataRef address, CFDataRef data, CFTimeInterval timeout );

    Параметры

    s

    CFSocket возражают для использования.

    address

    Адрес, сохраненный как a struct sockaddr подходящий для семейства протокола (struct sockaddr_in или struct sockaddr_in6, например) в объекте CFData, в который можно отправить содержание data. Если NULL, данные отправляются в адрес к который s уже соединяется. Этот объект данных используется только на время вызова функции.

    data

    Данные для отправки.

    timeout

    Время для ожидания данных, которые будут отправлены.

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

    Код ошибки, указывающий успешность или неуспешность.

    Обсуждение

    Эта функция устанавливает отправить тайм-аут базового сокета ( SO_SNDTIMEO опция в SOL_SOCKET уровень), затем вызывает send (или sendto если Вы обеспечили адрес) с предоставленными данными.

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

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

    • Если буфер сокета полон, и тайм-аут является ненулевым, функция может возвратить ошибку. Если это происходит, приложение должно ожидать буфера сокета для имения достаточного количества пространства в наличии для записи прежде, чем вызвать эту функцию снова.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

  • Когда определенные типы действия имеют место на объекте CFSocket, обратный вызов вызвал.

    Объявление

    Swift

    typealias CFSocketCallBack = CFunctionPointer<((CFSocket!, CFSocketCallBackType, CFData!, UnsafePointer<Void>, UnsafeMutablePointer<Void>) -> Void)>

    Objective C

    typedef void (*CFSocketCallBack) ( CFSocketRef s, CFSocketCallBackType callbackType, CFDataRef address, const void *data, void *info );

    Параметры

    s

    CFSocket возражают, что испытал некоторое действие.

    callbackType

    Тип действия обнаруживается.

    address

    Объект CFData содержание содержания a struct sockaddr подходящий для семейства протокола s (struct sockaddr_in или struct sockaddr_in6, например то), идентифицируя удаленный адрес, к который s соединяется. Это значение NULL за исключением kCFSocketAcceptCallBack и kCFSocketDataCallBack обратные вызовы.

    data

    Данные, подходящие для типа обратного вызова. Для a kCFSocketConnectCallBack это перестало работать в фоновом режиме, это - указатель на SInt32 код ошибки; для a kCFSocketAcceptCallBack, это - указатель на a CFSocketNativeHandle; или для a kCFSocketDataCallBack, это - объект CFData, содержащий входящие данные. Во всех других случаях это NULL.

    info

    info элемент CFSocketContext структура, использовавшаяся при создании объекта CFSocket.

    Обсуждение

    Вы указываете этот обратный вызов при создании объекта CFSocket с CFSocketCreate, CFSocketCreateConnectedToSocketSignature, CFSocketCreateWithNative, или CFSocketCreateWithSocketSignature.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

Типы данных

Прочие условия

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

    Объявление

    Swift

    struct CFSocketContext { 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

    struct CFSocketContext { CFIndex version; void *info; CFAllocatorRetainCallBack retain; CFAllocatorReleaseCallBack release; CFAllocatorCopyDescriptionCallBack copyDescription; }; typedef struct CFSocketContext CFSocketContext;

    Поля

    version

    Номер версии структуры. Должен быть 0.

    info

    Произвольный указатель на определенные с помощью программы данные, которые могут быть связаны с объектом CFSocket во время создания. Этот указатель передается всем обратным вызовам, определенным в контексте.

    retain

    Сохранить обратный вызов для Вашего определенного с помощью программы info указатель. Может быть NULL.

    release

    Обратный вызов выпуска для Вашего определенного с помощью программы info указатель. Может быть NULL.

    copyDescription

    Обратный вызов описания копии для Вашего определенного с помощью программы info указатель. Может быть NULL.

    Доступность

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

  • Введите для специфичного для платформы собственного дескриптора сокета.

    Объявление

    Swift

    typealias CFSocketNativeHandle = Int32

    Objective C

    typedef int CFSocketNativeHandle;

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Ссылка на объект CFSocket.

    Объявление

    Swift

    typealias CFSocketRef = CFSocket

    Objective C

    typedef struct __CFSocket *CFSocketRef;

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

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

    Объявление

    Swift

    struct CFSocketSignature { var protocolFamily: Int32 var socketType: Int32 var `protocol`: Int32 var address: Unmanaged<CFData>! }

    Objective C

    struct CFSocketSignature { SInt32 protocolFamily; SInt32 socketType; SInt32 protocol; CFDataRef address; }; typedef struct CFSocketSignature CFSocketSignature;

    Поля

    protocolFamily

    Семейство протокола сокета.

    socketType

    Тип сокета сокета.

    protocol

    Тип протокола сокета.

    address

    Объект CFData содержание содержания a struct sockaddr подходящий для данного семейства протокола (struct sockaddr_in или struct sockaddr_in6, например), идентифицируя адрес сокета.

    Доступность

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

Константы

Прочие условия

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

    Объявление

    Swift

    struct CFSocketCallBackType : RawOptionSetType { init(_ rawValue: CFOptionFlags) init(rawValue rawValue: CFOptionFlags) static var NoCallBack: CFSocketCallBackType { get } static var ReadCallBack: CFSocketCallBackType { get } static var AcceptCallBack: CFSocketCallBackType { get } static var DataCallBack: CFSocketCallBackType { get } static var ConnectCallBack: CFSocketCallBackType { get } static var WriteCallBack: CFSocketCallBackType { get } }

    Objective C

    enum CFSocketCallBackType { kCFSocketNoCallBack = 0, kCFSocketReadCallBack = 1, kCFSocketAcceptCallBack = 2, kCFSocketDataCallBack = 3, kCFSocketConnectCallBack = 4, kCFSocketWriteCallBack = 8 }; typedef enum CFSocketCallBackType CFSocketCallBackType;

    Константы

    • NoCallBack

      kCFSocketNoCallBack

      Никакой обратный вызов не должен быть сделан ни для какого действия.

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

    • ReadCallBack

      kCFSocketReadCallBack

      Обратный вызов вызывают, когда данные доступны, чтобы быть считанными, или новое соединение ожидает, чтобы быть принятым. Данные автоматически не считаны; обратный вызов должен считать сами данные.

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

    • AcceptCallBack

      kCFSocketAcceptCallBack

      Новые соединения будут автоматически приняты, и обратный вызов вызывают с параметром данных, являющимся указателем на a CFSocketNativeHandle из дочернего сокета. Этот обратный вызов применим только с сокетами слушания.

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

    • DataCallBack

      kCFSocketDataCallBack

      Входящие данные будут считаны в блоках в фоновом режиме, и обратный вызов вызывают с параметром данных, являющимся объектом CFData, содержащим данные чтения.

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

    • ConnectCallBack

      kCFSocketConnectCallBack

      Если попытка подключения сделана в фоновом режиме путем вызова CFSocketConnectToAddress или CFSocketCreateConnectedToSocketSignature когда подключение заканчивается, с отрицательным значением тайм-аута сделан этот тип обратного вызова. В этом случае параметр данных также NULL или указатель на SInt32 код ошибки, если подключение перестало работать. Этот обратный вызов никогда не будет отправляться несколько раз за данным сокетом.

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

    • WriteCallBack

      kCFSocketWriteCallBack

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

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

    Обсуждение

    Типы обратного вызова, для которых сделан обратный вызов, определяются, когда объект CFSocket создается, такой как с CFSocketCreate, или позже с CFSocketEnableCallBacks и CFSocketDisableCallBacks.

    kCFSocketReadCallBack, kCFSocketAcceptCallBack, и kCFSocketDataCallBack обратные вызовы являются взаимоисключающими.

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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

  • Флаги, которые могут быть установлены на объекте CFSocket управлять его поведением.

    Объявление

    Swift

    var kCFSocketAutomaticallyReenableReadCallBack: Int { get } var kCFSocketAutomaticallyReenableAcceptCallBack: Int { get } var kCFSocketAutomaticallyReenableDataCallBack: Int { get } var kCFSocketAutomaticallyReenableWriteCallBack: Int { get } var kCFSocketLeaveErrors: Int { get } var kCFSocketCloseOnInvalidate: Int { get }

    Objective C

    enum { kCFSocketAutomaticallyReenableReadCallBack = 1, kCFSocketAutomaticallyReenableAcceptCallBack = 2, kCFSocketAutomaticallyReenableDataCallBack = 3, kCFSocketAutomaticallyReenableWriteCallBack = 8, kCFSocketLeaveErrors = 64, kCFSocketCloseOnInvalidate = 128 };

    Константы

    • kCFSocketAutomaticallyReenableReadCallBack

      kCFSocketAutomaticallyReenableReadCallBack

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

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

    • kCFSocketAutomaticallyReenableAcceptCallBack

      kCFSocketAutomaticallyReenableAcceptCallBack

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

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

    • kCFSocketAutomaticallyReenableDataCallBack

      kCFSocketAutomaticallyReenableDataCallBack

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

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

    • kCFSocketAutomaticallyReenableWriteCallBack

      kCFSocketAutomaticallyReenableWriteCallBack

      Когда включено с помощью CFSocketSetSocketFlags, обратный вызов записи вызывают каждый раз, когда больше данных может быть записано в сокет. Когда отключено, обратный вызов записи вызывают только в следующий раз, когда данные могут быть записаны. Обратный вызов записи автоматически не повторно включен по умолчанию.

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

    • kCFSocketLeaveErrors

      kCFSocketLeaveErrors

      Обычно, CFNetwork складывают вызовы getsockopt(2) Mac OS X Developer Tools Manual Page считать код ошибки из сокета до вызова Вашего обратного вызова записи. Это также имеет эффект очистки любых незаконченных ошибок на сокете.

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

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

    • kCFSocketCloseOnInvalidate

      kCFSocketCloseOnInvalidate

      Когда включено с помощью CFSocketSetSocketFlags, когда объект CFSocket лишен законной силы, собственный сокет, связанный с объектом CFSocket, закрывается. Когда отключено, собственный сокет остается открытым. Эта опция включена по умолчанию.

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

    Обсуждение

    Флаги для объекта CFSocket установлены с CFSocketSetSocketFlags. Чтобы сразу включить или отключить обратный вызов, использовать CFSocketEnableCallBacks и CFSocketDisableCallBacks.

  • Коды ошибки для многих функций CFSocket.

    Объявление

    Swift

    enum CFSocketError : CFIndex { case Success case Error case Timeout }

    Objective C

    enum CFSocketError { kCFSocketSuccess = 0, kCFSocketError = -1, kCFSocketTimeout = -2 }; typedef enum CFSocketError CFSocketError;

    Константы

    • Success

      kCFSocketSuccess

      Работа сокета успешно выполнилась.

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

    • Error

      kCFSocketError

      Работа сокета перестала работать.

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

    • Timeout

      kCFSocketTimeout

      Работа сокета испытала таймаут.

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

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

    Objective C

    @import CoreFoundation;

    Swift

    import CoreFoundation

    Доступность

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