Μια επιστροφή κλήσης με όνομα “will connect” δεν αποτελεί απόδειξη ότι το CFStream είναι ακόμη ρυθμιζόμενο. Το συμβόλαιο CFReadStreamSetProperty της Apple λέει να υποθέτουμε ότι οι ιδιότητες πρέπει να οριστούν πριν από το άνοιγμα, εκτός αν η δική τους τεκμηρίωση αναφέρει διαφορετικά.

Για μια υπάρχουσα ενσωμάτωση ροής, κρατήστε την ακολουθία μαζί: δημιουργήστε τη ροή/το ζεύγος, χτίστε το σωστά τυποποιημένο λεξικό SOCKS, ορίστε την κατάλληλη ιδιότητα και ελέγξτε το λογικό της αποτέλεσμα, έπειτα καταχωρίστε συμβάντα και ξεκινήστε το άνοιγμα.

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

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

Αν κάποια άλλη βιβλιοθήκη κατέχει τη ροή, χρησιμοποιήστε το τεκμηριωμένο άγκιστρο πριν το άνοιγμα. Μια επιστροφή κλήσης που έρχεται μόνο αργότερα μπορεί να είναι το λάθος σημείο ενσωμάτωσης. Η αλλαγή ιδιοτήτων σε ήδη ανοιχτή ροή δεν μπορεί να μετακινήσει αυτή την υπάρχουσα σύνδεση σε SOCKS.

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