Σε μια εφαρμογή που συντηρεί κώδικα CFStream, επιλέξτε την ιδιότητα διαμεσολαβητή ανάλογα με τον τύπο της ροής που διαμορφώνεται. Μια ροή αιτήματος HTTP διαθέτει χειρισμό πρωτοκόλλου που μια απλή ροή υποδοχής δεν αποκτά μόνο από το λεξικό ιδιοτήτων της.

Σύνδεση που κατασκευάζεταιΤεκμηριωμένη διαμόρφωση
HTTP CFStream μέσω διαμεσολαβητή HTTPkCFStreamPropertyHTTPProxy
CFStream μέσω διαμεσολαβητή SOCKSkCFStreamPropertySOCKSProxy

Η Apple περιγράφει την ιδιότητα HTTP ειδικά ως διαμόρφωση μιας HTTP CFStream. Μια τέτοια ροή μπορεί να δημιουργηθεί από αίτημα CFHTTPMessage με CFReadStreamCreateForHTTPRequest. Το άνοιγμα αυτής της ροής σειριοποιεί και στέλνει το αίτημα HTTP.

Η ιδιότητα SOCKS δέχεται ένα CFDictionary που περιέχει τουλάχιστον τα κλειδιά κεντρικού υπολογιστή και θύρας του διαμεσολαβητή SOCKS. Είναι η αντίστοιχη δημόσια ιδιότητα για τον χειρισμό SOCKS σε μια CFStream. Για μια επιτρεπτή δημόσια δοκιμή TCP χωρίς διαπιστευτήρια διαμεσολαβητή, η λίστα διαμεσολαβητών SOCKS προσφέρει υποψήφιες τιμές κεντρικού υπολογιστή και θύρας για αυτό το λεξικό. Αντιστοιχίστε το πρωτόκολλο που υποστηρίζει η ροή και επαληθεύστε την πρόσβαση στον πραγματικό προορισμό και τη θύρα.

Εφαρμόστε την επιλεγμένη ιδιότητα πριν ανοίξετε τη ροή και ελέγξτε το λογικό αποτέλεσμα της κλήσης ορισμού της ιδιότητας. Μια απορριφθείσα ιδιότητα μπορεί να υποδηλώνει ότι η ροή ή η τιμή δεν υποστηρίζουν τη ζητούμενη διαμόρφωση.

Για αυθαίρετη κίνηση TCP μέσω διαμεσολαβητή HTTP, χρησιμοποιήστε έναν συνδετήρα που εκτελεί την απαιτούμενη διαπραγμάτευση CONNECT. Αυτή η διαπραγμάτευση είναι εργασία πρωτοκόλλου· η δημιουργία μιας ακατέργαστης ροής μόνο προς τη διεύθυνση του διαμεσολαβητή δεν την έχει εκτελέσει.

Σχετικά άρθρα