As propiedades de proxy de CFStream dependen do tipo de fluxo
Escolla a propiedade HTTP ou SOCKS segundo o soporte de protocolo do fluxo nunha aplicación CFStream existente.
Nunha aplicación que mantén código CFStream, escolla a propiedade de proxy segundo o tipo de fluxo que se configura. Un fluxo de solicitude HTTP ten un tratamento de protocolo que un fluxo de socket simple non adquire só polo seu dicionario de propiedades.
| Conexión que se constrúe | Configuración documentada |
|---|---|
| HTTP CFStream a través dun proxy HTTP | kCFStreamPropertyHTTPProxy |
| CFStream a través dun proxy SOCKS | kCFStreamPropertySOCKSProxy |
Apple describe a propiedade HTTP especificamente como a configuración dun HTTP CFStream. Ese fluxo pódese crear a partir dunha solicitude CFHTTPMessage con CFReadStreamCreateForHTTPRequest. Ao abrir ese fluxo, a solicitude HTTP serialízase e envíase.
A propiedade SOCKS acepta un CFDictionary que contén polo menos as claves de host e porto do proxy SOCKS. É a propiedade pública correspondente para o tratamento SOCKS nun CFStream. Para unha proba TCP pública permitida sen credenciais de proxy, a lista de proxys SOCKS ofrece valores candidatos de host e porto para ese dicionario. Faga coincidir o protocolo admitido polo fluxo e verifique o acceso ao destino e ao porto reais.
Aplique a propiedade escollida antes de abrir o fluxo e comprobe o resultado booleano da chamada de definición da propiedade. Unha propiedade rexeitada pode indicar que o fluxo ou o valor non admiten a configuración solicitada.
Para tráfico TCP arbitrario a través dun proxy HTTP, use un conector que realice a negociación CONNECT necesaria. Esa negociación é traballo de protocolo; crear un fluxo cru só cara ao enderezo do proxy non a realizou.