လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> socket_last_Error () + Socket_clear_Ercror () + socket_clear_error () ကိုအသုံးပြုနည်း

socket_last_Error () + Socket_clear_Ercror () + socket_clear_error () ကိုအသုံးပြုနည်း

M66 2025-05-27

ချို့ယွင်းချက်စီမံခန့်ခွဲမှုသည် PHP နှင့်ပရိုဂရမ်ရေးသည့်အခါကွန်ယက်ဆက်သွယ်ရေးအစီအစဉ်များကို debugging နှင့်ထိန်းသိမ်းခြင်း၏အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သည်။ Socket_last_Error () နှင့် Socket_Close_Error () သည် PHP မှထုတ်ယူခြင်းအတွက် PHP မှပေးသောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ developer များက developer များကူညီနိုင်ပြီးလတ်တလော socket error robor အချက်အလက်များကိုရှင်းလင်းရန်ကူညီနိုင်သည်။ ဤဆောင်းပါးသည်ဤလုပ်ငန်းဆောင်တာနှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပြီးအမှားကုဒ်များကိုမည်သို့ဖြေရှင်းရမည်,

1 ။ Socket_last_Error () function ကို

Socket_last_Error () ကို နောက်ဆုံး Socket လည်ပတ်မှု၏အမှားကုဒ်ကိုပြန်ပို့ရန်အသုံးပြုသည်။ ၎င်း၏ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -

 int socket_last_error ([ resource $socket ] )
  • အဆိုပါ parameter သည် $ socket ကို optional ကိုဖြစ်ပါတယ်။ သတ်သတ်မှတ်မှတ် Societ Resourt ထည့်သွင်းထားလျှင်, အမှားကုဒ်ကိုပြန်ပို့လိမ့်မည်။ အကယ်. ၎င်းကိုမလွန်ပါကပုံမှန်ဖြစ်ပေါ်နေသောအမှားကုဒ်ကိုပြန်လည်ရောက်ရှိသည်။

  • Return Value သည်အမှားကုဒ်ကိုညွှန်ပြသည့်ကိန်းဂဏန်းဖြစ်သည်။

2 ။ Socket_clear_Error () function ကို

Socket_Close_Error () ကို လတ်တလော Socket Error Record ကိုရှင်းလင်းရန်အသုံးပြုသည်။ ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -

 void socket_clear_error ([ resource $socket ] )
  • အဆိုပါ parameter $ socket ကိုလည်း optional ကိုဖြစ်ပါတယ်။ လွန်ခဲ့သည့်အတိုင်းမဖြတ်ပါက Global Socket Error ကိုရှင်းလင်းပါ။ သတ်သတ်မှတ်မှတ် Societ Society Resources ကိုဖြတ်သန်းသွားပါကအရင်းအမြစ်၏အမှားမှတ်တမ်းကိုရှင်းလင်းပါ။

3 ။ လက်တွေ့ကျသောလျှောက်လွှာဥပမာ

အောက်ဖော်ပြပါအချက်များမှာရိုးရိုး TCP client convertions certion ဥပမာတစ်ခုမှာဤလုပ်ငန်းဆောင်တာနှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုပုံသွင်းရန်နှင့်ရှင်းလင်းသောအမှားများကိုမည်သို့အသုံးပြုရမည်ကိုဖော်ပြသည်။

 <?php
// a TCP socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// မတည်ရှိသောလိပ်စာကိုတရားမဝင်ဆက်သွယ်ပါ,အမှားဖြစ်ပေါ်စေသည်
$host = 'm66.net';
$port = 9999; // ဒီ port မှာဝန်ဆောင်မှုကိုနားထောင်ခြင်းမရှိဘူးလို့ယူဆတယ်
@socket_connect($socket, $host, $port);

// အမှားကုဒ်ကိုရယူပါ
$errorCode = socket_last_error($socket);

if ($errorCode !== 0) {
    // အမှားမက်ဆေ့ခ်ျကိုရယူပါ
    $errorMessage = socket_strerror($errorCode);
    echo "ဆက်သွယ်မှုမအောင်မြင်ပါ,အမှားကုဒ်: $errorCode,အမှားသတင်းစကား: $errorMessage\n";

    // 根据အမှားကုဒ်进行逻辑判断
    if ($errorCode === 111 || $errorCode === 10061) {
        echo "ပစ်မှတ်အိမ်ရှင်သည်ချိတ်ဆက်ရန်ငြင်းဆန်သည်,စစ်ဆေးကြည့်ရှု m66.net:$port ဝန်ဆောင်မှု enable ဖို့ရှိမရှိ。\n";
    } elseif ($errorCode === 110 || $errorCode === 10060) {
        echo "ဆက်သွယ်မှုအချိန်ကုန်,ကျေးဇူးပြု. အတည်ပြုပါ m66.net ဒါကြောင့်လက်လှမ်းဖြစ်ပါတယ်。\n";
    }

    // အမှားအယွင်းကိုရှင်းပါ
    socket_clear_error($socket);
}

// ပရိုဂရမ်ယုတ္တိဗေဒကိုဆက်လုပ်ပါ...
socket_close($socket);
?>

အထက်ပါကုဒ်၌:

  1. @socket_connect ကို အသုံးပြု. ပုံမှန်သတိပေးစာကိုဖိနှိပ်ခြင်း,

  2. socket_last_Error မှတဆင့်သတ်သတ်မှတ်မှတ်အမှားကုဒ်ကိုရယူပါ။

  3. အမှားကုဒ်များကိုလူတို့၏ဖတ်နိုင်သောကြိုးများအဖြစ်ပြောင်းရန် Socket_Stror () ကို သုံးပါ။

  4. ဆက်သွယ်မှုကိုငြင်းပယ်ခြင်း, အချိန်ကုန်ခြင်း,

  5. နောက်ဆုံးတွင် socket_cloear_Error () ကိုနောက်ဆက်တွဲမှားယွင်းမှုကိုရှောင်ရှားရန်အမှားအယွင်းကိုရှင်းလင်းပါ။

4 ။ သာမန်အမှားကုဒ်ရည်ညွှန်း

အမှားကုဒ် အဓိပ္ပါယ်
111 ဆက်သွယ်မှုငြင်းဆန် (Linux)
110 ဆက်သွယ်မှုအချိန်ကုန် (Linux)
10061 ဆက်သွယ်မှုငြင်းဆန်ခြင်း (Windows)
10060 ဆက်သွယ်မှုအချိန်ကုန် (Windows)