Οι ιδιότητες διαμεσολαβητή του CFStream εξαρτώνται από τον τύπο της ροής
Επιλέξτε την ιδιότητα HTTP ή SOCKS σύμφωνα με την υποστήριξη πρωτοκόλλου της ροής σε μια υπάρχουσα εφαρμογή CFStream.
Σε μια εφαρμογή που συντηρεί κώδικα CFStream, επιλέξτε την ιδιότητα διαμεσολαβητή ανάλογα με τον τύπο της ροής που διαμορφώνεται. Μια ροή αιτήματος HTTP διαθέτει χειρισμό πρωτοκόλλου που μια απλή ροή υποδοχής δεν αποκτά μόνο από το λεξικό ιδιοτήτων της.
| Σύνδεση που κατασκευάζεται | Τεκμηριωμένη διαμόρφωση |
|---|---|
| HTTP CFStream μέσω διαμεσολαβητή HTTP | kCFStreamPropertyHTTPProxy |
| CFStream μέσω διαμεσολαβητή SOCKS | kCFStreamPropertySOCKSProxy |
Η Apple περιγράφει την ιδιότητα HTTP ειδικά ως διαμόρφωση μιας HTTP CFStream. Μια τέτοια ροή μπορεί να δημιουργηθεί από αίτημα CFHTTPMessage με CFReadStreamCreateForHTTPRequest. Το άνοιγμα αυτής της ροής σειριοποιεί και στέλνει το αίτημα HTTP.
Η ιδιότητα SOCKS δέχεται ένα CFDictionary που περιέχει τουλάχιστον τα κλειδιά κεντρικού υπολογιστή και θύρας του διαμεσολαβητή SOCKS. Είναι η αντίστοιχη δημόσια ιδιότητα για τον χειρισμό SOCKS σε μια CFStream. Για μια επιτρεπτή δημόσια δοκιμή TCP χωρίς διαπιστευτήρια διαμεσολαβητή, η λίστα διαμεσολαβητών SOCKS προσφέρει υποψήφιες τιμές κεντρικού υπολογιστή και θύρας για αυτό το λεξικό. Αντιστοιχίστε το πρωτόκολλο που υποστηρίζει η ροή και επαληθεύστε την πρόσβαση στον πραγματικό προορισμό και τη θύρα.
Εφαρμόστε την επιλεγμένη ιδιότητα πριν ανοίξετε τη ροή και ελέγξτε το λογικό αποτέλεσμα της κλήσης ορισμού της ιδιότητας. Μια απορριφθείσα ιδιότητα μπορεί να υποδηλώνει ότι η ροή ή η τιμή δεν υποστηρίζουν τη ζητούμενη διαμόρφωση.
Για αυθαίρετη κίνηση TCP μέσω διαμεσολαβητή HTTP, χρησιμοποιήστε έναν συνδετήρα που εκτελεί την απαιτούμενη διαπραγμάτευση CONNECT. Αυτή η διαπραγμάτευση είναι εργασία πρωτοκόλλου· η δημιουργία μιας ακατέργαστης ροής μόνο προς τη διεύθυνση του διαμεσολαβητή δεν την έχει εκτελέσει.