ကွင်းတစ်ခုသည် SOCKS တုံ့ပြန်ချက်၏ ရှစ်ဘိုက်ကို လိုချင်သည်။ သုံးဘိုက် ရရှိပြီးဖြစ်သည်။ နောက်ဖတ်ရှုမှုက b'' ကို ပြန်ပေးပြီး ကွင်းက ၎င်းကို ပေါင်းထည့်ကာ အရှည်ကို စစ်ဆေးပြီး ထာဝရ ထပ်ကြိုးစားသည်။

ဤသည် EOF ကိုင်တွယ်မှု အမှားဖြစ်ပြီး ပိုရှည်သော အချိန်ကုန်ဆုံးမှု လိုအပ်သော နှေးကွေးသည့် ပရောက်စီ မဟုတ်ပါ။ ပုံမှန် စီးကြောင်း ဆော့ကတ် လက်ခံမှုတွင် ဗလာဘိုက်စဉ်သည် အခြားတစ်ဖက် ချိတ်ဆက်မှု ဖြတ်တောက်ပြီးဖြစ်ကြောင်း ဆိုလိုသည်။ ကျန်ငါးဘိုက်သည် ထိုချိတ်ဆက်မှုတွင် မရောက်လာတော့ပါ။

တိကျသော ဖတ်ရှုမှု အကူအညီပေးသူတွင် မတူညီသော ရလဒ်သုံးမျိုး လိုအပ်သည်။ ဗလာမဟုတ်သော အပိုင်းများ စုစည်းခြင်း၊ လိုအပ်သော အရှည်မတိုင်မီ EOF တွင် မအောင်မြင်ခြင်း၊ နှင့် အချိန်ကုန်ဆုံးမှု သို့မဟုတ် အခြားဆော့ကတ် အမှားကို ဆက်လက်ပေးပို့ခြင်း ဖြစ်သည်။ ထိုကိစ္စများကို ယေဘုယျ ထပ်ကြိုးစားမှုကွင်း တစ်ခုတည်းအဖြစ် ပေါင်းစပ်သင့်သည်မဟုတ်ပါ။

လုပ်ဆောင်မှုမတိုင်မီ ဆော့ကတ်၏ ရည်ရွယ်ထားသော အချိန်ကုန်ဆုံးမှုကို သတ်မှတ်ပြီး ပရောက်စီ ပရိုတိုကော သတ်မှတ်ထားသော အကွက်အရှည်များကို ဖတ်ပါ။ လက်ခံမှုတစ်ခုတည်းသည် တုံ့ပြန်ချက်၏ တစ်စိတ်တစ်ပိုင်းကိုသာ ပြန်ပေးနိုင်သည်။ ဆန့်ကျင်ဘက်အားဖြင့် ကြီးမားသော ပုံသေ ဘာဖာကို တောင်းခြင်းသည် SOCKS လိပ်စာတိုင်း ထိုအရှည် ဖြစ်လာစေမည် မဟုတ်ပါ။

ရှေးဟောင်း MSG_WAITALL အပိုင်းကို ၎င်း၏ ရင်းမြစ်ထဲသို့ ကူးထည့်ပြီး EOF၊ အချက်ပြမှုများနှင့် ပလက်ဖောင်း အပြုအမူကို ဖုံးလွှမ်းသည်ဟု ယူဆကာ မှီခိုမှုကို မပြုပြင်ပါနှင့်။ ထိန်းသိမ်းထားသော အကောင်အထည်ဖော်မှု၏ ပံ့ပိုးထားသော ပြုပြင်မှုကို ရွေးချယ်ပါ၊ သို့မဟုတ် ခွဲခြမ်းစိတ်ဖြာသူသည် သင့်ကုဒ်ဖြစ်ပါက အကူအညီပေးသူ၏ စာချုပ်ကို တမင်တကာ အကောင်အထည်ဖော်ပါ။

မည်မျှဘိုက် မျှော်လင့်ခဲ့ပြီး ရရှိခဲ့သည်ကို သိမ်းဆည်းထားပါ၊ အထောက်အထား ပေးပို့မှုများကို မှတ်တမ်းမတင်ဘဲ။ “တုံ့ပြန်ချက် ရှစ်ဘိုက်အနက် သုံးဘိုက်ပြီးနောက် EOF” သည် ပျက်စီးသော ဖလှယ်မှုကို “ပရောက်စီ ထပ်ပြီး ပိတ်ဆို့သွားသည်” ထက် အများကြီး ပိုကောင်းစွာ ရှင်းပြသည်။

ဆက်စပ်ဆောင်းပါးများ