چرا ویژگی CFStream SOCKS که دیر تنظیم شود میتواند رد شود
ویژگیهای قابلتنظیم جریان را پیش از باز کردن اعمال کنید، پذیرش را بررسی کنید و آغاز جریان را از تکمیل مذاکره پراکسی جدا کنید.
یک callback به نام “will connect” اثباتی بر این نیست که CFStream هنوز قابلتنظیم است. قرارداد CFReadStreamSetProperty اپل میگوید باید فرض کرد ویژگیها پیش از باز کردن تنظیم میشوند، مگر آنکه مستندات خودشان خلاف آن را بگوید.
برای یکپارچهسازی موجود جریان، ترتیب را کنار هم نگه دارید: جریان/جفت را بسازید، دیکشنری SOCKS با نوعبندی درست را بسازید، ویژگی مناسب را تنظیم کنید و نتیجه بولی آن را بررسی کنید، سپس رویدادها را ثبت کنید و باز کردن را آغاز کنید.
نتیجه false یک خطای پیکربندی است، نه یک مسیر نصبشده. پیش از ادامه نوع جریان، کلید ویژگی، انواع مقدار دیکشنری و چرخه عمر را بررسی کنید.
در ترتیبی رویدادمحور، باز کردن میتواند بدون پایان مذاکره آغاز شود. پیش از آنکه اتصال را قابلاستفاده بدانید، رویدادهای وضعیت و خطا را مشاهده کنید.
اگر کتابخانه دیگری مالک جریان است، از hook مستند پیش از باز کردن آن استفاده کنید. callbackی که فقط دیرتر میآید میتواند نقطه یکپارچهسازی نادرست باشد. تغییر ویژگیها روی جریانی که از قبل باز است نمیتواند آن اتصال موجود را به SOCKS منتقل کند.