As propriedades de proxy do CFStream dependem do tipo de fluxo
Escolha a propriedade HTTP ou SOCKS de acordo com o suporte de protocolo do fluxo numa aplicação CFStream existente.
Numa aplicação que mantém código CFStream, escolha a propriedade de proxy de acordo com o tipo de fluxo que está a ser configurado. Um fluxo de pedido HTTP tem tratamento de protocolo que um fluxo de socket simples não obtém apenas pelo seu dicionário de propriedades.
| Ligação a construir | Configuração documentada |
|---|---|
| HTTP CFStream através de um proxy HTTP | kCFStreamPropertyHTTPProxy |
| CFStream através de um proxy SOCKS | kCFStreamPropertySOCKSProxy |
A Apple descreve a propriedade HTTP especificamente como a configuração de um HTTP CFStream. Esse fluxo pode ser criado a partir de um pedido CFHTTPMessage com CFReadStreamCreateForHTTPRequest. Abrir esse fluxo serializa e envia o pedido HTTP.
A propriedade SOCKS aceita um CFDictionary que contém pelo menos as chaves de anfitrião e porta do proxy SOCKS. É a propriedade pública correspondente para o tratamento SOCKS num CFStream. Para um teste TCP público permitido sem credenciais de proxy, a lista de proxies SOCKS oferece valores candidatos de anfitrião e porta para esse dicionário. Corresponda ao protocolo suportado pelo fluxo e verifique o acesso ao destino e à porta reais.
Aplique a propriedade escolhida antes de abrir o fluxo e verifique o resultado booleano da chamada de definição da propriedade. Uma propriedade rejeitada pode indicar que o fluxo ou o valor não suportam a configuração pedida.
Para tráfego TCP arbitrário através de um proxy HTTP, use um conector que execute a negociação CONNECT necessária. Essa negociação é trabalho de protocolo; criar um fluxo em bruto apenas para o endereço do proxy não a executou.