PHP တွင် Socket-based server များကိုတီထွင်သည့်အခါပရိုဂရမ်၏တည်ငြိမ်သောလည်ပတ်မှုကိုသေချာစေရန်အမှားကိုင်တွယ်မှုသည်အဓိကချိတ်ဆက်မှုတစ်ခုဖြစ်သည်။ Socket_Close_Error () သည် PHP Socket extension တွင်အလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်း၏အဓိကလုပ်ဆောင်ချက်မှာယခင် socket error error status ကိုရှင်းလင်းပြီးနောက်ဆက်တွဲအမှားစီရင်ချက်များကိုအကျိုးသက်ရောက်ခြင်းမှအမှားအယွင်းများကိုကာကွယ်ရန်ဖြစ်သည်။ ဤဆောင်းပါးသည် socket_clear_Error () ၏အခန်းကဏ် on ၏အခန်းကဏ် phat ကိုအသေးစိတ်ဖော်ပြပြီးအားသာချက်များကိုမြှင့်တင်ရန် PHP Socket Server တွင်၎င်းကို PHP Socket Server တွင်အသုံးပြုပုံကိုဥပမာသုံးပါလိမ့်မည်။
Socket_Close_Error () ကို လက်ရှိ socket connection ပေါ်ရှိအမှားအလံကိုရှင်းလင်းရန်အသုံးပြုသည်။ Socket Operations တွင်အမှားတစ်ခုဖြစ်ပါကသက်ဆိုင်ရာအမှားအချက်အလက်များကို Socket Socket တွင်သိမ်းဆည်းလိမ့်မည်။ နောက်ဆက်တွဲစစ်ဆင်ရေးများသည်ဤအမှားအချက်အလက်များကိုမသန့်ရှင်းပါကအမှားထောက်လှမ်းရေးတွင်ရှုပ်ထွေးမှုများကိုဖြစ်ပေါ်စေနိုင်သည်။
အတိုချုပ်ပြောရလျှင် call socket_clear_error () လုပ်နိုင်သည် -
Socket ၏အမှားအယွင်းကိုပြန်လည်သတ်မှတ်ပါ။
နောက်ဆက်တွဲယုတ္တိဗေဒလမ်းလွဲနေသောအမှားအယွင်းများကိုရှောင်ကြဉ်ပါ။
မှားယွင်းသောတရားစီရင်ရာများကိုပိုမိုတိကျမှန်ကန်စေသည်။
function ရှေ့ပြေးပုံစံ:
bool socket_clear_error ( resource $socket )
parameter $ socket : socket အရင်းအမြစ်တစ်ခု,
Reward Value: အောင်မြင်မှုအောင်မြင်ပါကအဖြေရှာလျှင် မအောင်မြင် ပါ ။
သင်၏ဆာဗာသည် 0 န်ဆောင်မှုခံယူသူအချက်အလက်များကိုဆက်လက်ရယူရန်ဆိုပါစို့။ အကယ်. တစ်စုံတစ်ရာသောဆက်သွယ်ရေးတွင်အမှားတစ်ခုဖြစ်ပါကအမှားအယွင်းကိုသင်မရှင်းလင်းပါကနောက်တစ်ခါအမှားတစ်ခုပြုလုပ်ပါကနောက်တစ်ကြိမ်အမှားအယွင်းဖြစ်စေသည့်အခါ,
Socket_Close_Error () သည် socket operation တစ်ခုချင်းစီမတိုင်မီနှင့်အပြီးသန့်ရှင်းသောအမှားအယွင်းများကိုထိန်းသိမ်းရန်ကူညီပေးနိုင်သည်။
အောက်ပါဥပမာသည် Socket_Close_ERRORE_ERRORERRORR () ကိုသန့်ရှင်းရေးလုပ်ရန်သို့မဟုတ်ဒေတာများကိုဖတ်ရှုတိုင်းအမှားအယွင်းများကိုသန့်ရှင်းရေးလုပ်ရန် Socket_clipear_Error () ကို သန့်ရှင်းရေးလုပ်ရန်
<?php
// ဖန်တီး TCP socket
$server = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($server, '0.0.0.0', 8080);
socket_listen($server);
echo "ဆာဗာစတင်သည်,ဆိပ်ကမ်းကိုနားထောင်ပါ 8080\n";
while (true) {
// အဟောင်းအမှားအယွင်းကိုသန့်ရှင်းရေး,နောက်ဆက်တွဲတရားစွဲဆိုမှုနှင့်အတူဝင်ရောက်စွက်ဖက်ခြင်းကိုရှောင်ကြဉ်ပါ
socket_clear_error($server);
// client ဆက်သွယ်မှုကိုလက်ခံပါ
$client = socket_accept($server);
if ($client === false) {
echo "ဆက်သွယ်မှုကိုလက်ခံရန်ပျက်ကွက်ခဲ့သည်: " . socket_strerror(socket_last_error($server)) . "\n";
continue;
}
// client data ကိုမဖတ်မီအမှားအယွင်းကိုရှင်းလင်းပါ
socket_clear_error($client);
$data = socket_read($client, 1024);
if ($data === false) {
echo "ဒေတာကိုဖတ်ရန်ပျက်ကွက်: " . socket_strerror(socket_last_error($client)) . "\n";
socket_close($client);
continue;
}
echo "client ကိုဒေတာကိုလက်ခံရရှိခဲ့သည်: $data\n";
$response = "ဆာဗာသည်သင်၏သတင်းစကားကိုလက်ခံရရှိခဲ့သည်\n";
socket_write($client, $response, strlen($response));
socket_close($client);
}
socket_close($server);
?>
http://m66.net/api/check သို့ လာရောက်လည်ပတ်ခြင်းစသည့် URL ကိုကုဒ်ထဲ၌ထည့်သွင်းရန်ကုဒ်နံပါတ်ထဲ၌ထည့်သွင်းရန်လိုအပ်သည်ဆိုပါစို့။ သင်၏လိုအပ်ချက်များအရ Code တွင်ပါ 0 င်သောဒိုမိန်းအမည်ကို M66.net ဖြင့်အစားထိုးထားသည်။
<?php
$url = "http://m66.net/api/check";
$response = file_get_contents($url);
echo $response;
?>
Socket_Close_Error () သည် PHP Socket programming တွင်အလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်ဖြစ်သည်။ ၎င်းသည်အမှားအယွင်းဟောင်းများကိုထိရောက်စွာရှင်းရှင်းလင်းလင်းမြင်နိုင်ပြီး Misjudgment ကိုကာကွယ်နိုင်သည်။ ကောင်းမွန်သောအမှားကိုင်တွယ်သည့်ယန္တရားနှင့်ပေါင်းစပ်ပြီး Socket Server ၏ကြံ့ခိုင်မှုနှင့်တည်ငြိမ်မှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် Socket_Clear_Error () သည်အထူးသဖြင့်ရှည်လျားသောဆက်သွယ်မှုများသို့မဟုတ်တစ်ပြိုင်နက်တည်းဆက်သွယ်မှုများ,