Дополнения сокета CFStream
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Swift
import CFNetwork
Objective C
@import CFNetwork;
Этот документ описывает CFStream
функции для работы с сокетами. Это - часть CFSocketStream API.
-
Создает читаемые и перезаписываемые потоки, подключенные к данному
CFHost
объект.Объявление
Swift
func CFStreamCreatePairWithSocketToCFHost(_
alloc
: CFAllocator!, _host
: CFHost!, _port
: Int32, _readStream
: UnsafeMutablePointer<Unmanaged<CFReadStream>?>, _writeStream
: UnsafeMutablePointer<Unmanaged<CFWriteStream>?>)Objective C
void CFStreamCreatePairWithSocketToCFHost ( CFAllocatorRef alloc, CFHostRef host, SInt32 port, CFReadStreamRef *readStream, CFWriteStreamRef *writeStream );
Параметры
alloc
Средство выделения для использования для выделения памяти для
CFReadStream
иCFWriteStream
объекты. ПередачаNULL
илиkCFAllocatorDefault
использовать текущее средство выделения по умолчанию.host
A
CFHost
возразите, с которым подключены потоки. Если не разрешено, узел будет разрешен до соединения.port
Номер порта TCP, с которым должны соединиться потоки сокета.
readStream
По возврату, содержит a
CFReadStream
объект соединился с узломhost
на портуport
, илиNULL
если существует отказ во время создания. Если Вы передаетеNULL
, функция не создаст читаемый поток. Владение соблюдает Создать Правило.writeStream
По возврату, содержит a
CFWriteStream
объект соединился с узломhost
на портуport
, илиNULL
если существует отказ во время создания. Если Вы передаетеNULL
, функция не создаст перезаписываемый поток. Владение соблюдает Создать Правило.Обсуждение
Потоки не создают сокет или подключение к указанному узлу, пока Вы не открываете один из потоков.
Большинство свойств совместно используется обоими потоками. Установка совместно используемого свойства для одного потока автоматически устанавливает свойство для другого.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в iOS 2.0 и позже.
-
Создает пару потоков для CFNetService.
Объявление
Swift
func CFStreamCreatePairWithSocketToNetService(_
alloc
: CFAllocator!, _service
: CFNetService!, _readstream
: UnsafeMutablePointer<Unmanaged<CFReadStream>?>, _writeStream
: UnsafeMutablePointer<Unmanaged<CFWriteStream>?>)Objective C
void CFStreamCreatePairWithSocketToNetService ( CFAllocatorRef alloc, CFNetServiceRef service, CFReadStreamRef *readStream, CFWriteStreamRef *writeStream );
Параметры
alloc
Средство выделения для использования для выделения памяти для
CFReadStream
иCFWriteStream
объекты. ПередачаNULL
илиkCFAllocatorDefault
использовать текущее средство выделения по умолчанию.service
Ссылка на
CFNetService
с которым должны быть подключены потоки. Если служба не будет разрешена, то служба будет разрешена, прежде чем потоки соединяются.readstream
По возврату, содержит a
CFReadStream
объект соединился со службой, указаннойservice
, илиNULL
если существует отказ во время создания. Если Вы передаетеNULL
, функция не создаст читаемый поток. Владение соблюдает Создать Правило.writeStream
По возврату, содержит a
CFWriteStream
объект соединился со службой, указаннойservice
, илиNULL
если существует отказ во время создания. Если Вы передаетеNULL
, функция не создаст перезаписываемый поток. Владение соблюдает Создать Правило.Обсуждение
Потоки не создают сокет, разрешают службу или соединяются с узлом службы, пока Вы не открываете один из потоков.
Большинство свойств совместно используется обоими потоками. Установка совместно используемого свойства для одного потока автоматически устанавливает свойство для другого.
Специальные замечания
Эта функция ориентирована на многопотоковое исполнение.
Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в iOS 2.0 и позже.
-
Эта функция вкладывает коды ошибки
kCFStreamErrorDomainSOCKS
домен отCFStreamError
возвращенный операцией с потоками.Объявление
Swift
func CFSocketStreamSOCKSGetError(_
error
: UnsafePointer<CFStreamError>) -> Int32Objective C
SInt32 CFSocketStreamSOCKSGetError ( const CFStreamError *error );
Параметры
error
Ошибочное значение для декодирования.
Обсуждение
Коды ошибки в
kCFStreamErrorDomainSOCKS
домен может прибыть из многократных частей стека протоколов, многие из которых определяют свои собственные ошибочные значения как часть внешних спецификаций, такие как Спецификация HTTP.Избегать беспорядка от конфликтных кодов ошибки, кодов ошибки в
kCFStreamErrorDomainSOCKS
домен содержит две части: подобласть, говорящая, какая часть стека протоколов генерировала ошибку и сам код ошибки.Вызов
CFSocketStreamSOCKSGetError
возвращает сам код ошибки, который должен быть интерпретирован в контексте результата вызова кCFSocketStreamSOCKSGetErrorSubdomain
. Возможные возвращаемые значения (вне подпроблемно-ориентированных значений, таких как версии клиента и коды Ошибки HTTP) перечислены по Ошибкам CFStream.Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в iOS 2.0 и позже.
-
Связали ошибочную подобласть с ошибками в
kCFStreamErrorDomainSOCKS
домен отCFStreamError
возвращенный операцией с потоками.Объявление
Swift
func CFSocketStreamSOCKSGetErrorSubdomain(_
error
: UnsafePointer<CFStreamError>) -> Int32Objective C
SInt32 CFSocketStreamSOCKSGetErrorSubdomain ( const CFStreamError *error );
Параметры
error
Ошибочное значение для декодирования.
Обсуждение
Коды ошибки в
kCFStreamErrorDomainSOCKS
домен может прибыть из многократных частей стека протоколов, многие из которых определяют свои собственные ошибочные значения как часть внешних спецификаций, такие как Спецификация HTTP.Избегать беспорядка от конфликтных кодов ошибки, кодов ошибки в
kCFStreamErrorDomainSOCKS
домен содержит две части: подобласть, говорящая, какая часть стека протоколов генерировала ошибку и сам код ошибки.Вызов
CFSocketStreamSOCKSGetErrorSubdomain
возвращает идентификатор, говорящий, какой уровень стека протоколов произвел ошибку. Возможные значения перечислены в ошибочных Подобластях. С этой информацией можно интерпретировать коды ошибки, возвращенныеCFSocketStreamSOCKSGetError
.Оператор импорта
Objective C
@import CFNetwork;
Swift
import CFNetwork
Доступность
Доступный в iOS 2.0 и позже.
-
Константы для
CFStream
ключи свойстваОбъявление
Swift
let kCFStreamPropertyShouldCloseNativeSocket: CFString! let kCFStreamPropertySocketNativeHandle: CFString! let kCFStreamPropertySocketSecurityLevel: CFString! let kCFStreamPropertySSLPeerTrust: CFString! let kCFStreamPropertySSLContext: CFString! let kCFStreamPropertySOCKSProxy: CFString! let kCFStreamPropertySSLSettings: CFString! let kCFStreamPropertyProxyLocalBypass: CFString! let kCFStreamPropertySocketRemoteHost: CFString! let kCFStreamPropertySocketRemoteNetService: CFString! let kCFStreamNetworkServiceType: CFString! let kCFStreamPropertyConnectionIsCellular: CFString! let kCFStreamPropertyNoCellular: CFString!
Objective C
const CFStringRef kCFStreamPropertyShouldCloseNativeSocket; const CFStringRef kCFStreamPropertySocketSecurityLevel; const CFStringRef kCFStreamPropertySOCKSProxy; const CFStringRef kCFStreamPropertySSLPeerCertificates; const CFStringRef kCFStreamPropertySSLPeerTrust; const CFStringRef kCFStreamPropertySSLSettings; const CFStringRef kCFStreamPropertySSLContext; const CFStringRef kCFStreamPropertyProxyLocalByPass; const CFStringRef kCFStreamPropertySocketRemoteHost; const CFStringRef kCFStreamPropertySocketRemoteNetService; const CFStringRef kCFStreamNetworkServiceType; const CFStringRef kCFStreamPropertyConnectionIsCellular; const CFStringRef kCFStreamPropertyNoCellular;
Константы
-
kCFStreamPropertyShouldCloseNativeSocket
Если ключ свойства Close Native Socket.
Если установлено в
kCFBooleanTrue
, когда поток будет выпущен, поток закроет и выпустит базовый собственный сокет. Если установлено вkCFBooleanFalse
, когда поток будет выпущен, поток не закроет и выпустит базовый собственный сокет. Если поток создается с собственным сокетом, значение по умолчанию этого свойстваkCFBooleanFalse
. Это свойство только доступно для потоков сокета. Это может быть установлено путем вызоваCFReadStreamSetProperty
иCFWriteStreamSetProperty
, и это может быть скопированоCFReadStreamCopyProperty
иCFWriteStreamCopyProperty
.Доступный в iOS 2.0 и позже.
-
kCFStreamPropertySocketNativeHandle
Ключ свойства Native Handle сокета.
Причины
CFReadStreamCopyProperty
илиCFWriteStreamCopyProperty
возвратитьсяCFData
объект, содержащий собственный дескриптор для потока сокета. Это свойство только доступно для потоков сокета.Доступный в iOS 2.0 и позже.
-
kCFStreamPropertySocketSecurityLevel
Ключ свойства Security Level сокета.
См. Константы Уровня безопасности Сокета CFStream для определенных констант уровня безопасности для использования.
Доступный в iOS 2.0 и позже.
-
kCFStreamPropertySSLPeerCertificates
Ключ свойства SSL Peer Certificates для операций копии, возвращающих a
CFArray
объектный содержащийSecCertificateRef
объекты.Для получения дополнительной информации посмотрите
SSLGetPeerCertificates
вSecurity/SecureTransport.h
.Доступный в iOS 2.0 и позже.
Осуждаемый в iOS 4.0.
-
kCFStreamPropertySSLPeerTrust
Равноправный ключ Управляемой по доверенности собственности SSL для операций копии, возвращающих a
SecTrustRef
объект, содержащий результат квитирования SSL.Для получения дополнительной информации посмотрите
SSLCopyPeerTrust
вSecurity/SecureTransport.h
.Доступный в iOS 2.0 и позже.
-
kCFStreamPropertySSLContext
SSLContextRef
объект, используемый для операций чтения и операций записи на потоке.Прежде, чем открыть поток, можно скопировать объект с этого свойства и сконфигурировать его с помощью Безопасного Транспортного API. Можно также установить это свойство для указания нового
SSLContextRef
для потока. Поведение зависит от того, был ли поток открыт и от того, связан ли контекст SSL с потоком, следующим образом:Если поток не был открыт, указанный объект заменяет любой существующий контекст и используется в начальном потоковом квитировании, когда открыто соединение.
Если поток был открыт без включенного SSL, устанавливание этого свойства инициирует квитирование SSL по существующему сокету.
После того, как начальное квитирование SSL происходит, изменение объекта контекста не поддерживается.
Если словарь настроек SSL установлен для
kCFStreamPropertySSLSettings
ключ,SSLContextRef
объект создается внутренне и конфигурируется на основе того словаря. Однако, еслиSSLContextRef
объект установлен впоследствии, его конфигурация имеет приоритет по ранее сконфигурированному контексту.Доступный в iOS 5.0 и позже.
-
kCFStreamPropertySOCKSProxy
SOCKS проксирует ключ свойства.
Установить a
CFStream
возразите, чтобы использовать прокси SOCKS, вызватьCFReadStreamSetProperty
илиCFWriteStreamSetProperty
со свойством называют набор кkCFStreamPropertySOCKSProxy
и его набор значений к aCFDictionary
наличие объекта в минимуме akCFStreamPropertySOCKSProxyHost
ключ и akCFStreamPropertySOCKSProxyPort
ключ. Для получения информации об этих ключах см. Прокси SOCKS CFStream Ключевые Константы. SystemConfiguration возвращает CFDictionary для прокси SOCKS, который применим без модификации.Доступный в iOS 2.0 и позже.
-
kCFStreamPropertySSLSettings
Ключ свойства SSL Settings для операций присвоения.
Значение ключа является a
CFDictionary
объект, содержащий настройки безопасности. Для получения информации о ключах и значениях словаря, см. Свойство CFStream Константы Настроек SSL. По умолчанию нет никаких настроек безопасности.Доступный в iOS 2.0 и позже.
-
kCFStreamPropertyProxyLocalBypass
Проксируйте Локальный ключ свойства Bypass.
Значение ключа
CFBoolean
возразите, чье значение указывает, должны ли локальные имена хоста подвергнуться для проксирования обработки.Доступный в iOS 2.0 и позже.
-
kCFStreamPropertySocketRemoteHost
Значение ключа является a
CFHostRef
для удаленного узла, если это известно. В противном случае его значениеNULL
.Доступный в iOS 2.0 и позже.
-
kCFStreamPropertySocketRemoteNetService
Значение ключа является a
CFNetServiceRef
для службы удаленной сети, если это известно. В противном случае его значениеNULL
.Доступный в iOS 2.0 и позже.
-
kCFStreamNetworkServiceType
Тип службы для потока. Обеспечение типа службы позволяет системе должным образом обрабатывать определенные атрибуты потока, включая поведение маршрутизации и приостановки. Большинство потоков не должно устанавливать это свойство. Посмотрите
“Stream Service Types”
для списка возможных значений.Доступный в iOS 4.0 и позже.
-
kCFStreamPropertyConnectionIsCellular
Булево значение, указывающее, соединяется ли поток по сотовому интерфейсу (WWAN). Это - свойство только для чтения и
false
пока соединение не было установлено.Доступный в iOS 6.0 и позже.
-
kCFStreamPropertyNoCellular
Булево значение, указывающее, что соединение не должно быть установлено по сотовой связи (WWAN) соединение. Это значение может быть установлено только перед открытием потока.
Доступный в iOS 5.0 и позже.
-
-
Константы для использования в a
CFDictionary
объект, который является значениемkCFStreamPropertySSLSettings
потоковый ключ свойства.Объявление
Swift
let kCFStreamSSLLevel: CFString! let kCFStreamSSLValidatesCertificateChain: CFString! let kCFStreamSSLPeerName: CFString! let kCFStreamSSLCertificates: CFString! let kCFStreamSSLIsServer: CFString!
Objective C
const CFStringRef kCFStreamSSLLevel; const CFStringRef kCFStreamSSLAllowsExpiredCertificates; const CFStringRef kCFStreamSSLAllowsExpiredRoots; const CFStringRef kCFStreamSSLAllowsAnyRoot; const CFStringRef kCFStreamSSLValidatesCertificateChain; const CFStringRef kCFStreamSSLPeerName; const CFStringRef kCFStreamSSLCertificates; const CFStringRef kCFStreamSSLIsServer;
Константы
-
kCFStreamSSLLevel
Ключ свойства Security, значение которого указывает уровень безопасности потока.
По умолчанию уровень безопасности потока
kCFStreamSocketSecurityLevelNegotiatedSSL
. Для других возможных значений см. Константы Уровня безопасности Сокета CFStream.Доступный в iOS 2.0 и позже.
-
kCFStreamSSLAllowsExpiredCertificates
Ключ свойства Security, значение которого указывает, позволяются ли сертификаты с истекшим сроком.
По умолчанию значение этого ключа
kCFBooleanFalse
(сертификаты с истекшим сроком не позволяются).Доступный в iOS 2.0 и позже.
Осуждаемый в iOS 4.0.
-
kCFStreamSSLAllowsExpiredRoots
Свойство Security, значение которого указывает, позволяются ли корневые сертификаты с истекшим сроком.
По умолчанию значение этого ключа
kCFBooleanFalse
(корневые сертификаты с истекшим сроком не позволяются).Доступный в iOS 2.0 и позже.
Осуждаемый в iOS 4.0.
-
kCFStreamSSLAllowsAnyRoot
Ключ свойства Security, значение которого указывает, должны ли быть позволены корневые сертификаты.
По умолчанию значение этого ключа
kCFBooleanFalse
(корневые сертификаты не позволяются).Доступный в iOS 2.0 и позже.
Осуждаемый в iOS 4.0.
-
kCFStreamSSLValidatesCertificateChain
Ключ свойства Security, значение которого указывает, должна ли быть проверена цепочка сертификата.
По умолчанию значение этого ключа
kCFBooleanTrue
(цепочка сертификата должна быть проверена).Доступный в iOS 2.0 и позже.
-
kCFStreamSSLPeerName
Ключ свойства Security, значение которого переопределяет имя, используемое для проверки сертификата.
По умолчанию имя хоста, использовавшееся, когда поток создавался, используется; если никакое имя хоста не использовалось, никакое равноправное имя не будет использоваться. Установите значение этого ключа к
kCFNull
предотвратить проверку имени.Доступный в iOS 2.0 и позже.
-
kCFStreamSSLCertificates
Ключ свойства Security, значение которого является CFArray SecCertificateRefs за исключением первого элемента в массиве, который является SecIdentityRef.
Для получения дополнительной информации посмотрите
SSLSetCertificate()
вSecurity/SecureTransport.h
.Доступный в iOS 2.0 и позже.
-
kCFStreamSSLIsServer
Ключ свойства Security, значение которого указывает, должно ли соединение действовать как сервер в процессе SSL.
По умолчанию значение этого ключа
kCFBooleanFalse
(соединение не должно действовать как сервер). Если значение этого ключаkCFBooleanTrue
,kCFStreamSSLCertificates
ключ должен содержать допустимое значение.Доступный в iOS 2.0 и позже.
Обсуждение
Это перечисление определяет константы для ключей a
CFDictionary
объект, который является значениемkCFStreamPropertySSLSettings
ключ. -
-
Указывает константы для установки протокола системы защиты для потока сокета.
Объявление
Objective C
typedef enum { kCFStreamSocketSecurityNone = 0, kCFStreamSocketSecuritySSLv2, kCFStreamSocketSecuritySSLv3, kCFStreamSocketSecuritySSLv23, kCFStreamSocketSecurityTLSv1 } CFStreamSocketSecurityProtocol;
Константы
-
kCFStreamSocketSecurityNone
Указывает, что никакой протокол системы защиты не установлен для потока сокета.
Использовать
kCFStreamSocketSecurityLevelNone
.Доступный в iOS 2.0 через iOS 7.1.
-
kCFStreamSocketSecuritySSLv2
Указывает что версия SSL, которая будет установлена как протокол системы защиты для потока сокета.
Использовать
kCFStreamSocketSecurityLevelSSLv2
.Доступный в iOS 2.0 через iOS 7.1.
-
kCFStreamSocketSecuritySSLv3
Указывает, что версия 3 SSL установлена как протокол системы защиты для потока сокета.
Использовать
kCFStreamSocketSecurityLevelSSLv3
.Доступный в iOS 2.0 через iOS 7.1.
-
kCFStreamSocketSecuritySSLv23
Указывает, что версия 3 SSL установлена как протокол системы защиты для потоковой пары сокета. Если та версия не доступна, указывает что версия SSL, которая будет установлена как протокол системы защиты для потока сокета.
Использовать
kCFStreamSocketSecurityLevelNegotiatedSSL
.Доступный в iOS 2.0 через iOS 7.1.
-
kCFStreamSocketSecurityTLSv1
Указывает, что версия 1 TLS установлена как протокол системы защиты для потока сокета.
Использовать
kCFStreamSocketSecurityLevelTLSv1
.Доступный в iOS 2.0 через iOS 7.1.
Обсуждение
Это перечисление определяет константы для установки протокола системы защиты для потоковой пары сокета при вызове
CFSocketStreamPairSetSecurityProtocol
.Оператор импорта
Objective C
@import CFNetwork;
Доступность
Доступный в iOS 2.0 через iOS 7.1.
-
-
Константы для установки уровня безопасности потока сокета.
Объявление
Swift
let kCFStreamSocketSecurityLevelNone: CFString! let kCFStreamSocketSecurityLevelSSLv2: CFString! let kCFStreamSocketSecurityLevelSSLv3: CFString! let kCFStreamSocketSecurityLevelTLSv1: CFString! let kCFStreamSocketSecurityLevelNegotiatedSSL: CFString!
Objective C
const CFStringRef kCFStreamSocketSecurityLevelNone; const CFStringRef kCFStreamSocketSecurityLevelSSLv2; const CFStringRef kCFStreamSocketSecurityLevelSSLv3; const CFStringRef kCFStreamSocketSecurityLevelTLSv1; const CFStringRef kCFStreamSocketSecurityLevelNegotiatedSSL;
Константы
-
kCFStreamSocketSecurityLevelNone
Указывает, что не установлен никакой уровень безопасности.
Доступный в iOS 2.0 и позже.
-
kCFStreamSocketSecurityLevelSSLv2
Указывает что версия SSL, которая будет установлена как протокол системы защиты для потока сокета.
Доступный в iOS 2.0 и позже.
-
kCFStreamSocketSecurityLevelSSLv3
Указывает, что версия 3 SSL установлена как протокол системы защиты для потоковой пары сокета.
Если версия 3 SSL не доступна, указывает что версия SSL, которая будет установлена как протокол системы защиты для потока сокета.
Доступный в iOS 2.0 и позже.
-
kCFStreamSocketSecurityLevelTLSv1
Указывает, что версия 1 TLS установлена как протокол системы защиты для потока сокета.
Доступный в iOS 2.0 и позже.
-
kCFStreamSocketSecurityLevelNegotiatedSSL
Указывает, что протокол системы защиты высшего уровня, который может быть согласован быть установленным как протокол системы защиты для потока сокета.
Доступный в iOS 2.0 и позже.
Обсуждение
Это перечисление определяет предпочтительные константы для установки протокола системы защиты для потоковой пары сокета при вызове
CFReadStreamSetProperty
илиCFWriteStreamSetProperty
. -
-
Константы для прокси SOCKS
CFDictionary
ключи.Объявление
Swift
let kCFStreamPropertySOCKSProxyHost: CFString! let kCFStreamPropertySOCKSProxyPort: CFString! let kCFStreamPropertySOCKSVersion: CFString! let kCFStreamSocketSOCKSVersion4: CFString! let kCFStreamSocketSOCKSVersion5: CFString! let kCFStreamPropertySOCKSUser: CFString! let kCFStreamPropertySOCKSPassword: CFString!
Objective C
const CFStringRef kCFStreamPropertySOCKSProxyHost; const CFStringRef kCFStreamPropertySOCKSProxyPort; const CFStringRef kCFStreamPropertySOCKSVersion; const CFStringRef kCFStreamSocketSOCKSVersion4; const CFStringRef kCFStreamSocketSOCKSVersion5; const CFStringRef kCFStreamPropertySOCKSUser; const CFStringRef kCFStreamPropertySOCKSPassword;
Константы
-
kCFStreamPropertySOCKSProxyHost
Постоянный для ключа прокси-сервера SOCKS.
Этот ключ содержит объект CFString, представляющий прокси-сервер SOCKS. Определенный для соответствия
kSCPropNetProxiesSOCKSProxy
.Доступный в iOS 2.0 и позже.
-
kCFStreamPropertySOCKSProxyPort
Постоянный для ключа порта хоста прокси SOCKS.
Этот ключ содержит a
CFNumberRef
объект типаkCFNumberSInt32Type
чье значение представляет порт, на котором слушает прокси.Доступный в iOS 2.0 и позже.
-
kCFStreamPropertySOCKSVersion
Постоянный для ключа версии SOCKS.
Его значение должно быть
kCFStreamSocketSOCKSVersion4
илиkCFStreamSocketSOCKSVersion5
установить SOCKS4 или SOCKS5, соответственно. Если этот ключ не присутствует, SOCKS5 используется по умолчанию.Доступный в iOS 2.0 и позже.
-
kCFStreamSocketSOCKSVersion4
Констант использовал в
kCFStreamSockerSOCKSVersion
ключ для указания SOCKS4 как версию SOCKS для потока.Доступный в iOS 2.0 и позже.
-
kCFStreamSocketSOCKSVersion5
Констант использовал в
kCFStreamSOCKSVersion
ключ для указания SOCKS5 как версию SOCKS для потока.Доступный в iOS 2.0 и позже.
-
kCFStreamPropertySOCKSUser
Постоянный для ключа, требуемого установить имя пользователя.
Значение является a
CFString
объект, содержащий имя пользователя.Доступный в iOS 2.0 и позже.
-
kCFStreamPropertySOCKSPassword
Постоянный для ключа, требуемого установить пароль пользователя.
Значение является a
CFString
объект, содержащий пароль пользователя.Доступный в iOS 2.0 и позже.
Обсуждение
При установке свойства SOCKS Proxy потока значение свойства является a
CFDictionary
объект, содержащий в минимумеkCFStreamPropertySOCKSProxyHost
иkCFStreamPropertySOCKSProxyPort
ключи. Словарь может также содержать другие ключи, описанные в этом разделе. -
-
Строковые константы, указывающие тип службы потока.
Объявление
Swift
let kCFStreamNetworkServiceTypeVoIP: CFString! let kCFStreamNetworkServiceTypeVideo: CFString! let kCFStreamNetworkServiceTypeBackground: CFString! let kCFStreamNetworkServiceTypeVoice: CFString!
Objective C
CFStringRef const kCFStreamNetworkServiceTypeVoIP; const CFStringRef kCFStreamNetworkServiceTypeVideo; const CFStringRef kCFStreamNetworkServiceTypeBackground; const CFStringRef kCFStreamNetworkServiceTypeVoice;
Константы
-
kCFStreamNetworkServiceTypeVoIP
Указывает, что поток предоставляет услугу VoIP.
Доступный в iOS 4.0 и позже.
-
kCFStreamNetworkServiceTypeVideo
Указывает, что поток обеспечивает интерактивные видеоданные.
Доступный в iOS 5.0 и позже.
-
kCFStreamNetworkServiceTypeBackground
Указывает, что поток является фоновой загрузкой.
Доступный в iOS 5.0 и позже.
-
kCFStreamNetworkServiceTypeVoice
Указывает, что поток обеспечивает интерактивную речевую информацию.
Доступный в iOS 5.0 и позже.
-
-
Ошибочные домены, определенные для
CFSocketStream
вызовы.Объявление
Swift
let kCFStreamErrorDomainSOCKS: Int32 let kCFStreamErrorDomainSSL: Int32 let kCFStreamErrorDomainWinSock: CFIndex
Objective C
extern const int kCFStreamErrorDomainSOCKS; extern const int kCFStreamErrorDomainSSL; extern const CFIndex kCFStreamErrorDomainWinSock;
Константы
-
kCFStreamErrorDomainSOCKS
Этот домен возвращает коды ошибки из уровня SOCKS. Ошибки описаны в
Доступный в iOS 2.0 и позже.
-
kCFStreamErrorDomainSSL
Этот домен возвращает коды ошибки, связанные с уровнем SSL. Для списка кодов ошибки посмотрите заголовок
SecureTransport.h
вSecurity.framework
.Доступный в iOS 2.0 и позже.
-
kCFStreamErrorDomainWinSock
При выполнении кода CFNetwork Windows этот домен возвращает коды ошибки, связанные с базовым штабелем TCP/IP. Необходимо также отметить что несетевые ошибки такой как
ENOMEM
поставлены через домен POSIX. Посмотрите заголовокwinsock2.h
для соответствующих кодов ошибки.Доступный в iOS 2.0 и позже.
Обсуждение
Для определения источника ошибки исследуйте
userInfo
словарь, включенный вCFError
объект, возвращенный вызовом функции или вызовомCFErrorGetDomain
и передача вCFError
возразите и домен, значение которого Вы хотите считать. -
-
Подобласти раньше определяли, как интерпретировать ошибку в
kCFStreamErrorDomainSOCKS
домен.Объявление
Objective C
enum { kCFStreamErrorSOCKSSubDomainNone = 0, kCFStreamErrorSOCKSSubDomainVersionCode = 1, kCFStreamErrorSOCKS4SubDomainResponse = 2, kCFStreamErrorSOCKS5SubDomainUserPass = 3, kCFStreamErrorSOCKS5SubDomainMethod = 4, kCFStreamErrorSOCKS5SubDomainResponse = 5 };
Константы
-
kCFStreamErrorSOCKSSubDomainNone
Код ошибки возвратился, код ошибки SOCKS.
-
kCFStreamErrorSOCKSSubDomainVersionCode
Ошибка возвратилась, содержит версию SOCKS, который сервер хочет использовать.
-
kCFStreamErrorSOCKS4SubDomainResponse
Ошибка возвратилась, код состояния, который сервер возвратил после последней работы.
-
kCFStreamErrorSOCKS5SubDomainUserPass
Эта подобласть возвращает коды ошибки, связанные с последней попыткой аутентификации.
-
kCFStreamErrorSOCKS5SubDomainMethod
Эта подобласть возвращает желаемый метод согласования сервера.
-
kCFStreamErrorSOCKS5SubDomainResponse
Эта подобласть возвращает код ответа, отправленный сервером при ответе на запрос на установление соединения.
Обсуждение
Коды ошибки в
kCFStreamErrorDomainSOCKS
домен может прибыть из многократных частей стека протоколов, многие из которых определяют свои собственные ошибочные значения как часть внешних спецификаций, такие как Спецификация HTTP.Избегать беспорядка от конфликтных кодов ошибки, кодов ошибки в
kCFStreamErrorDomainSOCKS
домен содержит две части: подобласть, говорящая, какая часть стека протоколов генерировала ошибку и сам код ошибки.Вызов
CFSocketStreamSOCKSGetErrorSubdomain
возвращает идентификатор, говорящий, какой уровень стека протоколов произвел ошибку. Этот список констант содержит возможные значения, которые возвратит эта функция.Вызов
CFSocketStreamSOCKSGetError
возвращает фактический код ошибки, который описывает подобласть. -
-
Коды ошибки, возвращенные
kCFStreamErrorDomainSOCKS
ошибочный домен.Объявление
Swift
var kCFStreamErrorSOCKS5BadResponseAddr: Int { get } var kCFStreamErrorSOCKS5BadState: Int { get } var kCFStreamErrorSOCKSUnknownClientVersion: Int { get } var kCFStreamErrorSOCKS4RequestFailed: Int { get } var kCFStreamErrorSOCKS4IdentdFailed: Int { get } var kCFStreamErrorSOCKS4IdConflict: Int { get } var kSOCKS5NoAcceptableMethod: Int { get }
Objective C
/* kCFStreamErrorSOCKSSubDomainNone */ enum { kCFStreamErrorSOCKS5BadResponseAddr = 1, kCFStreamErrorSOCKS5BadState = 2, kCFStreamErrorSOCKSUnknownClientVersion = 3 }; /* kCFStreamErrorSOCKS4SubDomainResponse */ enum { kCFStreamErrorSOCKS4RequestFailed = 91, kCFStreamErrorSOCKS4IdentdFailed = 92, kCFStreamErrorSOCKS4IdConflict = 93 }; /* kCFStreamErrorSOCKS5SubDomainMethod */ enum { kSOCKS5NoAcceptableMethod = 0xFF };
Константы
-
kCFStreamErrorSOCKS5BadResponseAddr
Адрес возвратился, не имеет известного типа. Этот код ошибки только допустим для ошибок в
kCFStreamErrorSOCKSSubDomainNone
подобласть.Доступный в iOS 2.0 и позже.
-
kCFStreamErrorSOCKS5BadState
Поток не находится в состоянии, позволяющем требуемую работу. Этот код ошибки только допустим для ошибок в
kCFStreamErrorSOCKSSubDomainNone
подобласть..Доступный в iOS 2.0 и позже.
-
kCFStreamErrorSOCKSUnknownClientVersion
Сервер SOCKS отклонил доступ, потому что это не поддерживает соединения с требуемой версией SOCKS. Версия клиента SOCKS. Можно запросить
kCFSOCKSVersionKey
ключ для обнаружения, что версия сервер, который требуют. Этот код ошибки только допустим для ошибок вkCFStreamErrorSOCKSSubDomainNone
подобласть.Доступный в iOS 2.0 и позже.
-
kCFStreamErrorSOCKS4RequestFailed
Запрос, отклоненный сервером или запросом, перестал работать. Эта ошибка является определенной для SOCKS4. Этот код ошибки только допустим для ошибок в
kCFStreamErrorSOCKS4SubDomainResponse
подобласть.Доступный в iOS 2.0 и позже.
-
kCFStreamErrorSOCKS4IdentdFailed
Запрос, отклоненный сервером, потому что это не могло соединиться с
identd
демон на клиенте. Эта ошибка является определенной для SOCKS4. Этот код ошибки только допустим для ошибок вkCFStreamErrorSOCKS4SubDomainResponse
подобласть.Доступный в iOS 2.0 и позже.
-
kCFStreamErrorSOCKS4IdConflict
Запрос, отклоненный сервером, потому что клиентская программа и
identd
демон сообщил о различных идентификаторах пользователей. Эта ошибка является определенной для SOCKS4. Этот код ошибки только допустим для ошибок вkCFStreamErrorSOCKS4SubDomainResponse
подобласть.Доступный в iOS 2.0 и позже.
-
kSOCKS5NoAcceptableMethod
Клиент и сервер не мог найти согласованный метод аутентификации. Этот код ошибки только допустим для ошибок в
kCFStreamErrorSOCKS5SubDomainMethod
подобласть.Доступный в iOS 2.0 и позже.
Обсуждение
Коды ошибки в
kCFStreamErrorDomainSOCKS
домен может прибыть из многократных частей стека протоколов, многие из которых определяют свои собственные ошибочные значения как часть внешних спецификаций, такие как Спецификация HTTP.Избегать беспорядка от конфликтных кодов ошибки, кодов ошибки в
kCFStreamErrorDomainSOCKS
домен содержит две части: подобласть, говорящая, какая часть стека протоколов генерировала ошибку и сам код ошибки.Вызов
CFSocketStreamSOCKSGetErrorSubdomain
возвращает идентификатор, говорящий, какой уровень стека протоколов произвел ошибку.Вызов
CFSocketStreamSOCKSGetError
возвращает фактический код ошибки, который описывает подобласть. Этот список констант содержит возможные значения, которые возвратит эта функция. Они должны быть интерпретированы в контексте соответствующей ошибочной подобласти. -