Les propriétés de proxy CFStream dépendent du type de flux
Choisissez la propriété HTTP ou SOCKS selon la prise en charge du protocole par le flux dans une application CFStream existante.
Dans une application qui maintient du code CFStream, choisissez la propriété de proxy selon le type de flux configuré. Un flux de requête HTTP dispose d'un traitement de protocole qu'un simple flux de socket n'obtient pas uniquement de son dictionnaire de propriétés.
| Connexion en cours de construction | Configuration documentée |
|---|---|
| HTTP CFStream via un proxy HTTP | kCFStreamPropertyHTTPProxy |
| CFStream via un proxy SOCKS | kCFStreamPropertySOCKSProxy |
Apple décrit la propriété HTTP précisément comme la configuration d'un HTTP CFStream. Un tel flux peut être créé à partir d'une requête CFHTTPMessage avec CFReadStreamCreateForHTTPRequest. L'ouverture de ce flux sérialise et envoie la requête HTTP.
La propriété SOCKS accepte un CFDictionary contenant au moins les clés d'hôte et de port du proxy SOCKS. C'est la propriété publique correspondante pour le traitement SOCKS sur un CFStream. Pour un test TCP public autorisé sans identifiants de proxy, la liste de proxys SOCKS propose des valeurs d'hôte et de port candidates pour ce dictionnaire. Faites correspondre le protocole pris en charge par le flux et vérifiez l'accès à la destination et au port réels.
Appliquez la propriété choisie avant d'ouvrir le flux et vérifiez le résultat booléen de l'appel de définition de propriété. Une propriété rejetée peut indiquer que le flux ou la valeur ne prend pas en charge la configuration demandée.
Pour un trafic TCP arbitraire via un proxy HTTP, utilisez un connecteur qui effectue la négociation CONNECT requise. Cette négociation est un travail de protocole ; créer un flux brut vers la seule adresse du proxy ne l'a pas effectuée.