Dlaczego późno ustawiona właściwość CFStream SOCKS może zostać odrzucona
Zastosuj konfigurowalne właściwości strumienia przed otwarciem, sprawdź akceptację i odróżnij uruchomienie strumienia od zakończenia negocjacji z proxy.
Wywołanie zwrotne o nazwie „will connect” nie jest dowodem, że CFStream nadal można konfigurować. Kontrakt CFReadStreamSetProperty firmy Apple mówi, że należy zakładać, iż właściwości są ustawiane przed otwarciem, chyba że ich własna dokumentacja mówi inaczej.
W istniejącej integracji strumienia trzymaj sekwencję razem: utwórz strumień/parę, zbuduj poprawnie typowany słownik SOCKS, ustaw odpowiednią właściwość i sprawdź jej wynik logiczny, następnie zarejestruj zdarzenia i rozpocznij otwieranie.
Wynik false to błąd konfiguracji, a nie zainstalowana trasa. Przed kontynuowaniem sprawdź typ strumienia, klucz właściwości, typy wartości słownika i cykl życia.
W układzie sterowanym zdarzeniami otwieranie może się rozpocząć bez zakończenia negocjacji. Obserwuj zdarzenia stanu i błędów, zanim uznasz połączenie za użyteczne.
Jeśli strumień należy do innej biblioteki, użyj jej udokumentowanego haka przed otwarciem. Wywołanie zwrotne przychodzące dopiero później może być niewłaściwym punktem integracji. Zmiana właściwości na już otwartym strumieniu nie może przenieść tego istniejącego połączenia na SOCKS.