Socket_Close_Error () function ကို Calling Socket_Close_Error () function ကို Calling Socket_Close_Error () function ကိုခေါ်ယူပြီးနောက် developer များသည်ထူးဆန်းသောဖြစ်ရပ်တစ်ခုကိုတွေ့ရလိမ့်မည်။ အစပြုသူတွေကအမှားကိုရှင်းလင်းနေလို့ကတည်းက connection ဟာပုံမှန်အလုပ်လုပ်သင့်တယ်လို့ထင်ကြတယ်,
ပထမ ဦး စွာ socket_clear_Error () function ၏စစ်မှန်သောလုပ်ဆောင်ချက်သည် Socket_Clue Ort ၏အမှားကုဒ်ကိုရှင်းလင်းရန် ဖြစ်သည်, ၎င်းသည် Socket_Last_Error () မှ အမှားတန်ဖိုးကိုပြန်လည်စတင်ရန်ဖြစ်သည်။ ၎င်းသည် socket ကိုယ်နှိုက်၏အခြေအနေကိုမဖြေရှင်းနိုင်ပါ။ တစ်နည်းပြောရရင်အမှားကို "မမြင်နိုင်ဘူး" လို့ပဲ။
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
@socket_connect($socket, 'm66.net', 80);
if (socket_last_error($socket)) {
echo 'ဆက်သွယ်မှုမအောင်မြင်ပါ,အမှားကုဒ်:' . socket_last_error($socket) . "\n";
socket_clear_error($socket);
// ဆက်လက်သုံးရန်ကြိုးစားပါSocketအရေးအသားစစ်ဆင်ရေးလုပ်ဆောင်ပါ
$result = socket_write($socket, "GET / HTTP/1.1\r\nHost: m66.net\r\n\r\n");
if ($result === false) {
echo "ရေးပါ:" . socket_strerror(socket_last_error($socket)) . "\n";
}
}
အထက်ဖော်ပြပါကုဒ်တွင် Socket_write () သည် Socket_Close_Error () ကိုခေါ်လျှင်ပင်ပျက်ကွက်နေဆဲဖြစ်သည်။ အဘယ်ကြောင့်? ဘာဖြစ်လို့လဲဆိုတော့ socket connection မအောင်မြင်ဘူးဆိုရင် 4 င်းရဲ့ပြည်တွင်းပြည်ကိုအဂတိလိုက်စားမှုရှိခဲ့ဖူးလား, စနစ်ကပိတ်ထားမိနိုင်တယ်။
အဆင့်နိမ့်သောကွန်ယက်ဆက်သွယ်မှုတွင် connection status ကို operating system မှထိန်းသိမ်းထားသည်။ Connection သည် connection server သည်ချိတ်ဆက်ခြင်း, ကွန်ယက်ပြတ်တောက်ခြင်း, အချိန်ကုန်စသည်ဖြင့်ငြင်းဆန်သည်။ ဤအချိန်တွင်အမှားကုဒ်ကိုရှင်းလင်းခြင်းက စာဖတ်ခြင်းဆိုင်ရာသတင်းစကား၏စာဖတ်ခြင်းအပြုအမူကို သာသက်ရောက်စေပြီး Socket ၏အမှန်တကယ် connection status ကို ပြောင်းလဲလိမ့်မည်မဟုတ်ပါ။
Socket_Close_ERRORRORR () ကို သင် 0 ငအလိုက် 0 င်ခွင့်ပြုပါ။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အမှားတစ်ခုသည် socket connection တစ်ခုတွင်အမှားအယွင်းတစ်ခုဖြစ်ပြီး၎င်းကိုဆက်လက်အသုံးမပြုနိုင်ကြောင်းအတည်ပြုသည့်အခါ, Socket_Close_Error () နှင့် "fix" မည့်အစား ဆက်သွယ်မှုကိုတက်ကြွစွာပိတ်ထား သင့်သည်။
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!@socket_connect($socket, 'm66.net', 80)) {
echo "ဆက်သွယ်မှုမအောင်မြင်ပါ,ပြန်လည်ချိတ်ဆက်ရန်ကြိုးစားပါ...\n";
socket_close($socket);
// Releate နှင့်ချိတ်ဆက်ပါ
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (@socket_connect($socket, 'm66.net', 80)) {
echo "အောင်မြင်စွာပြန်လည်ချိတ်ဆက်ပါ\n";
} else {
echo "ထပ်ခါတလဲလဲပျက်ကွက်:" . socket_strerror(socket_last_error($socket)) . "\n";
}
}
developer များက socket_clear_Error () ကို "လက်ကိုင်တံလုပ်ဖော်ကိုင်ဖက်များသို့မဟုတ်ရှည်လျားသောဆက်သွယ်မှုများကိုကိုင်တွယ်သောအခါ" နောက်ဖတ်ရန်နှင့်ရေးရန် "ကိုအသုံးပြုသည်။ ဒါကအဆင်ပြေပါတယ်။ သို့သော်အမှားကိုအဆက်ဖြတ်ခြင်း, ဝေးလံခေါင်သီဆက်သွယ်မှုစသဖြင့်ဖြစ်ပေါ်လာပါက,
Socket_Close_Error () သည်အမှားအယွင်းအသစ်များကိုအကာအကွယ်ပေးရန်အတွက်အမှားကုဒ်ကိုပြန်လည်စတင်ရန်ကိရိယာတစ်ခုမျှသာဖြစ်သည်။ ၎င်းတွင် Socket ကိုယ်တိုင်အခြေအနေသို့ပြန်လည်ပြုပြင်ခြင်းသက်ရောက်မှုမရှိပါ။ ဆက်သွယ်မှုအမှားတစ်ခုနှင့်ကြုံတွေ့ရသောအခါလုပ်ရန်အလုံခြုံဆုံးအရာမှာလက်ရှိ socket ကိုပိတ်ပြီးဆက်သွယ်မှုကိုပြန်လည်တည်ဆောက်ရန်ဖြစ်သည်။
ရှင်းရှင်းလင်းလင်း "ရှင်းလင်းသောအမှားသတင်းအချက်အလက်" နှင့် "ပြုပြင်ပြောင်းလဲမှု status status status" အကြားခြားနားချက်ကိုရှင်းရှင်းလင်းလင်းခွဲခြားခြင်းအားဖြင့်သာဆက်သွယ်ရေးဖွံ့ဖြိုးတိုးတက်မှုကိုပိုမိုတည်ငြိမ်စွာပြုလုပ်နိုင်သည်။