CFStream ပရောက်စီ ဂုဏ်သတ္တိများသည် stream အမျိုးအစားပေါ် မူတည်သည်
ရှိပြီးသား CFStream အက်ပ်တွင် stream ၏ ပရိုတိုကော ပံ့ပိုးမှုအလိုက် HTTP သို့မဟုတ် SOCKS ဂုဏ်သတ္တိကို ရွေးပါ။
CFStream ကုဒ် ထိန်းသိမ်းထားသော အက်ပ်တွင် ဖွဲ့စည်းနေသော stream အမျိုးအစားအလိုက် ပရောက်စီ ဂုဏ်သတ္တိကို ရွေးပါ။ HTTP တောင်းခံမှု stream တွင် သာမန် socket stream သည် ၎င်း၏ ဂုဏ်သတ္တိ အဘိဓာန်မှ သက်သက် မရရှိနိုင်သော ပရိုတိုကော ကိုင်တွယ်မှု ရှိသည်။
| တည်ဆောက်နေသော ချိတ်ဆက်မှု | မှတ်တမ်းတင်ထားသော ဖွဲ့စည်းမှု |
|---|---|
| HTTP ပရောက်စီ မှတစ်ဆင့် HTTP CFStream | kCFStreamPropertyHTTPProxy |
| SOCKS ပရောက်စီ မှတစ်ဆင့် CFStream | kCFStreamPropertySOCKSProxy |
Apple သည် HTTP ဂုဏ်သတ္တိကို HTTP CFStream ဖွဲ့စည်းခြင်းအဖြစ် အထူးဖော်ပြသည်။ ထိုသို့သော stream ကို CFHTTPMessage တောင်းခံမှုမှ CFReadStreamCreateForHTTPRequest ဖြင့် ဖန်တီးနိုင်သည်။ ထို stream ကို ဖွင့်ခြင်းသည် HTTP တောင်းခံမှုကို အစဉ်လိုက် ပြုလုပ်ပြီး ပို့သည်။
SOCKS ဂုဏ်သတ္တိသည် အနည်းဆုံး SOCKS ပရောက်စီ၏ host နှင့် port သော့များ ပါဝင်သော CFDictionary ကို လက်ခံသည်။ ၎င်းသည် CFStream ပေါ်ရှိ SOCKS ကိုင်တွယ်မှုအတွက် သက်ဆိုင်သော အများပြည်သူ ဂုဏ်သတ္တိ ဖြစ်သည်။ ပရောက်စီ အထောက်အထား မပါဘဲ ခွင့်ပြုထားသော အများပြည်သူ TCP စမ်းသပ်မှုအတွက် SOCKS ပရောက်စီ စာရင်း သည် ထို အဘိဓာန်အတွက် ကိုယ်စားလှယ်လောင်း host နှင့် port တန်ဖိုးများကို ပေးသည်။ stream က ပံ့ပိုးသော ပရိုတိုကောနှင့် ကိုက်ညီအောင် ပြုလုပ်ပြီး အမှန်တကယ် ဦးတည်ရာနှင့် port သို့ ရောက်ရှိမှုကို စစ်ဆေးပါ။
ရွေးထားသော ဂုဏ်သတ္တိကို stream မဖွင့်မီ အသုံးချပါ ပြီး ဂုဏ်သတ္တိ သတ်မှတ်သည့် ခေါ်ဆိုမှု၏ Boolean ရလဒ်ကို စစ်ဆေးပါ။ ပယ်ချခံရသော ဂုဏ်သတ္တိသည် stream သို့မဟုတ် တန်ဖိုးက တောင်းဆိုထားသော ဖွဲ့စည်းမှုကို မပံ့ပိုးကြောင်း ညွှန်ပြနိုင်သည်။
HTTP ပရောက်စီ မှတစ်ဆင့် မထိန်းချုပ်နိုင်သော TCP အသွားအလာအတွက် လိုအပ်သော CONNECT ညှိနှိုင်းမှုကို ဆောင်ရွက်သည့် ချိတ်ဆက်ကိရိယာကို အသုံးပြုပါ။ ထို ညှိနှိုင်းမှုသည် ပရိုတိုကော အလုပ်ဖြစ်သည်; ပရောက်စီ၏ လိပ်စာသို့ သာ ကုန်ကြမ်း stream ဖန်တီးခြင်းက ၎င်းကို မဆောင်ရွက်ရသေးပါ။