PHP Network Programming တွင် Socket_Close_Error () function ကိုသတ်မှတ်ထားသော socket ရှိအမှားအယွင်းကိုရှင်းလင်းရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်မှု၏ရည်ရွယ်ချက်မှာကွဲပြားခြားနားသောပလက်ဖောင်းများအပေါ်အကြမ်းအားဖြင့်တူညီသော်လည်း၎င်း၏အပြုအမူအသေးစိတ်အချက်အလက်များနှင့် Windows နှင့် Linux System များတွင်အသုံးပြုမှုအချက်များကွဲပြားမှုအချို့ရှိသည်။ ဤဆောင်းပါးသည်ဤ operating system နှစ်ခုတွင် socket_clear_error () ၏စွမ်းဆောင်ရည်ကွဲပြားခြားနားမှုများကိုခွဲခြမ်းစိတ်ဖြာလိမ့်မည်။
PHP's Socket_Close_Error () သည် Socket extension တွင်ပေးသောလက်တွေ့လုပ်ဆောင်ချက်ဖြစ်သည်။ ခေါ်ဆိုခံရပြီးနောက် Socket ရှိအမှားအယွင်းကိုရှင်းလင်းပြီးလက်ရှိအမှားကုဒ်ကိုပြန်လည်ပေးပို့လိမ့်မည်။ function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
<?php
// ရှင်းလင်းသော socket အမှားအယွင်းအခြေအနေနှင့်ပြန်အမှားကုဒ်
int socket_clear_error(resource $socket [, bool $call_shutdown = false]);
?>
$ socket : အပေါ်လုပ်ကိုင်ရန် socket အရင်းအမြစ်။
$ Call_shutdown (optional): အမှားကိုရှင်းလင်းပြီးနောက် Socket Socket ပေးပို့ခြင်းနှင့်ရယူခြင်းလုပ်ငန်းများကို ပိတ်ခြင်း ,
Linux တွင် Socket_Close_ERRORE () တွင်အမှားကုဒ်သည်အမှားအယွင်းများနှင့်အများအားဖြင့် Errno နှင့်သက်ဆိုင်သည်။ နောက်ဆုံး socket operty ၏အမှားအယွင်းကိုတိကျစွာရောင်ပြန်ဟပ်နိုင်သည်။ Linux kernel ၏ socket အကောင်အထည်ဖော်မှုသည်အမှားအယွင်းများကိုရှင်းလင်းပြီးဖတ်ရှုခြင်းအားဖြင့်တိုက်ရိုက်စာဖတ်ခြင်းကိုပြုလုပ်သည်။
Windows Systems တွင်အမှားကုဒ်သည် WSAEETBLOCK , WSAECOCNRESET စသည်ဖြင့် (ထိုကဲ့သို့သောအမှားကုဒ်များသည် Linux Errno နှင့်အတိအကျမတူပါ။ တစ်ချိန်တည်းမှာပင် Windows Cache နှင့် Socket Errorers များကိုအနည်းငယ်ကွဲပြားစေသည်။ တစ်ခါတစ်ရံတွင် Socket_Close_Error () ကိုခေါ်ဆိုခြင်းသည်ဆိုင်းငံ့ထားသောအမှားများအားလုံးကိုအချိန်မီမရှင်းလင်းနိုင်ပါ။
Linux ပတ်ဝန်းကျင်တွင် Socket_Close_Error () ကို အများအားဖြင့်ပိတ်ဆို့ထားသော socket operations များအပြီးအမှားအယွင်းများကိုရှာဖွေရန်နှင့်ရှင်းလင်းသောအမှားများကိုရှာဖွေရန်နှင့်အကောင်းဆုံးအကျိုးသက်ရောက်မှုကို () သို့မဟုတ် Poll () နှင့်အသုံးပြုသည်။
Windows တွင် Socket သည်ပိတ်ဆို့ခြင်း mode ကိုသို့မဟုတ်ကွန်ယက်ပတ် 0 န်းကျင်သည်ရှုပ်ထွေးနေပါက function ကိုခေါ်ဆိုခြင်းမပြုပါနှင့်။ အချို့ဖြစ်ရပ်များတွင် Socket_shutDown () သို့ ထပ်မံခေါ်ဆိုမှုများသို့မဟုတ် socket ကိုပြန်ဖွင့်ရန်လိုအပ်သည်။
Linux နှင့် Windows များအတွက် $ call_shutdown parameter ကိုထောက်ခံမှုအနည်းငယ်သာကွဲပြားခြားနားမှုအနည်းငယ်ရှိပါတယ်။ Windows တွင်ဤ parameter ကိုဖွင့်ပြီး Sending နှင့်လက်ခံခြင်းလမ်းကြောင်းများကိုဖြုတ်ချရန် Winsock ၏ Shutdown () function ကိုဖုန်းဆက်ပါ။ Linux သည်ပိုမိုပြောင်းလွယ်ပြင်လွယ်။ ပိတ်ထားသောအပြုအမူသည် ပို. ယူနီဖောင်းဖြစ်သည်။
PHP ကွန်ယက်အစီအစဉ်များသည် Windows နှင့် Linux ပလက်ဖောင်းနှစ်ခုလုံးတွင်တည်ငြိမ်စွာလုပ်ဆောင်နိုင်ရန်အတွက် developer များကအောက်ပါအချက်များကိုဂရုပြုရန်လိုအပ်သည်။
Socket_Close_Error_Error () ကို အသုံးပြုနေရန်ရွေးချယ်ခြင်းရှိမရှိကိုရွေးချယ်ပြီး operating system API မှပြန်လာသောအမှားကုဒ်နှင့်ပေါင်းစပ်။ ကိုင်တွယ်ပါ။ Returned error code ကိုအကဲဖြတ်သည့်အခါကွဲပြားခြားနားသောပလက်ဖောင်းများအတွက်ခြွင်းချက်ပုံစံများအတွက်ခြွင်းချက်ကောင်းသောခြက်ခြင်းကိုရေးရန်အကြံပြုသည်။
ပိတ်ဆို့ခြင်းမဟုတ်သော mode တွင်, ပထမ ဦး စွာ Socket_select () နှင့်အခြားလုပ်ဆောင်ချက်များကိုအချိန်မီသန့်ရှင်းရေးပျက်ကွက်ခြင်းကြောင့်ယုတ္တိမရှိသောရှုပ်ထွေးမှုများကိုရှောင်ရှားနိုင်ကြောင်းအတည်ပြုရန် Socket_Clection_clear_error () ဟုအတည်ပြုရန်။
Cross-platform debugging အတွက်အဆင်ပြေသောအမှားကုဒ်များကိုမှတ်တမ်းတင်ရန် Network Programs သို့ပြန်လည်နေရာချထားရန်ကွန်ရက်ပရိုဂရမ်များသို့အသေးစိတ်အမှားမှတ်တမ်းများကိုထည့်သွင်းရန်အကြံပြုသည် ။
Socket_Close_Error () သည် ကိစ္စရပ်အားလုံးတွင်အမှားအယွင်းအမျိုးမျိုးကိုမရှင်းလင်းနိုင်ပါ။ လိုအပ်ပါက socket_shutdown () , socket_close () နှင့်အခြားလုပ်ဆောင်ချက်များနှင့်အခြားလုပ်ဆောင်ချက်များကိုပြည့်စုံစွာကိုင်တွယ်ရန်ပေါင်းစပ်ထားသည်။
အောက်ပါဥပမာသည် Socket_Close_Error () ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည်။