لماذا قد تُرفض خاصية CFStream SOCKS المتأخرة
طبّق خصائص التدفق القابلة للضبط قبل الفتح، وتحقق من القبول، وميّز بين بدء التدفق وإكمال تفاوض الوسيط.
إن استدعاءً رجعيًا يُسمى “will connect” ليس دليلًا على أن CFStream ما زال قابلًا للضبط. عقد CFReadStreamSetProperty من Apple يقول إنه يجب افتراض أن الخصائص تُضبط قبل الفتح ما لم توضّح وثائقها خلاف ذلك.
بالنسبة لتكامل تدفق قائم، أبقِ التسلسل متماسكًا: أنشئ التدفق/الزوج، وابنِ قاموس SOCKS المكتوب بأنواع صحيحة، واضبط الخاصية المناسبة وتحقق من نتيجتها المنطقية، ثم سجّل الأحداث وابدأ الفتح.
النتيجة false هي فشل في الإعداد، وليست مسارًا مثبّتًا. تحقق من نوع التدفق ومفتاح الخاصية وأنواع قيم القاموس ودورة الحياة قبل المتابعة.
في ترتيب قائم على الأحداث، يمكن أن يبدأ الفتح دون إكمال التفاوض. راقب أحداث الحالة والخطأ قبل اعتبار الاتصال صالحًا للاستخدام.
إذا كانت مكتبة أخرى تملك التدفق، فاستخدم خطافها الموثق قبل الفتح. قد يكون الاستدعاء الرجعي المتأخر فقط نقطة التكامل الخاطئة. تغيير الخصائص على تدفق مفتوح بالفعل لا يمكن أن ينقل ذلك الاتصال القائم إلى SOCKS.