PHP ကို အသုံးပြု. ပရိုဂရမ်းမင်း Sockets သည်အမှားအယွင်းများသည်အလွန်အရေးကြီးသည့်အပိုင်းဖြစ်သည်။ အထူးသဖြင့်ကွန်ယက်ဆက်သွယ်ရေးအစီအစဉ်များအတွက်အမှားအယွင်းများကိုအချိန်မီသန့်ရှင်းရေးနှင့်ကိုင်တွယ်ခြင်းများသည်အစီအစဉ်၏တည်ငြိမ်မှုနှင့် debugging စွမ်းဆောင်ရည်ကိုတိုက်ရိုက်သက်ရောက်သည်။ ဤဆောင်းပါးသည်သာမန်ထက်အလွယ်တကူလျောက်ပတ်သောပြ issue နာကိုအာရုံစိုက်ပါမည်။
Socket_Close_Error () သည် PHP ရှိ function တစ်ခုဖြစ်ပြီး Socket-Related Resolual Information ကိုရှင်းလင်းရန်ဖြစ်သည်။ ၎င်း၏ function ကိုမတိုင်မီထုတ်ပေးသောအမှားအယွင်းကိုပြန်လည်စတင်ရန်ဖြစ်သည်။
Socket_Close_Error () အမှားအယွင်းကိုရှင်းလင်းရန်မခေါ်ပါကအမှားအယွင်းများကိုရှင်းလင်းရန်မခေါ်ပါကဤအမှားအယွင်းများသည်အမှားအယွင်းများတွင်မခေါ်ပါ။ ၎င်းသည်လက်ရှိစစ်ဆင်ရေး၏တကယ့်အခြေအနေမဟုတ်ဘဲယခင်အမွေအနှစ်အမှားများဖြစ်ရန်နောက်ဆက်တွဲ socket operations များဖြင့်ယခင်အမွေအနှစ်အမှားအယွင်းများဖြင့်ရှာဖွေတွေ့ရှိနိုင်သည့်အမှားအယွင်းများကိုရှာဖွေတွေ့ရှိနိုင်ပြီး၎င်းသည် "ဖရိုဖရဲ" သို့မဟုတ် "တိ" အမှားအယွင်းများကိုဖြစ်ပေါ်စေလိမ့်မည်။
Socket_last_Error သို့နောက်ဆက်တွဲခေါ်ဆိုမှု () အမှားအဟောင်းကိုဖတ်သည်
စိတ်ရှုပ်ထွေးမှုများကိုဖြစ်ပေါ်စေပြီးလက်ရှိတောင်းဆိုမှုကိုပျက်ကွက်မှုအတွက်အကြောင်းပြချက်ကိုတိကျစွာရှာ။ မရပါ
အကျိုးသက်ရောက်မှုသစ်ထုတ်လုပ်ခြင်းနှင့်အမှားကိုင်တွယ်ခြင်းယုတ္တိဗေဒကိုကိုင်တွယ်ခြင်း,
ဤတွင် Socket_Close_Error () ကိုမခေါ်ပါကအမှားအယွင်းများကိုရှုပ်ထွေးစေနိုင်သည်ကိုပြသရန်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
<?php
// ဖန်တီးsocket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "ဖန်တီးsocketဆုံးရှုံး: " . socket_strerror(socket_last_error()) . "\n";
// ဤအချိန်တွင်အမှားတစ်ခုဖြစ်ပွားခဲ့သည်ဆိုပါစို့,ဒါပေမယ့်မခေါ်ပါsocket_clear_error()
}
// 模拟一次ဆုံးရှုံး的连接ခဲှစိတ်ကုသ
$result = socket_connect($socket, 'm66.net', 80);
if ($result === false) {
echo "连接ဆုံးရှုံး: " . socket_strerror(socket_last_error($socket)) . "\n";
// ဒါကိုဒီအချိန်မှာခေါ်သင့်တယ်socket_clear_errorအမှားအယွင်းကိုရှင်းလင်းပါ
socket_clear_error($socket);
}
// အခြားသူများကိုနောက်ပိုင်းတွင်ထွက်သယ်ဆောင်နေကြသည်socketခဲှစိတ်ကုသ
// မခေါ်လျှင်socket_clear_error(),ဤနေရာတွင်ရှာဖွေတွေ့ရှိသောအမှားသည်ယခင်အမှားဖြစ်ဆဲဖြစ်နိုင်သည်
$writeResult = socket_write($socket, "GET / HTTP/1.1\r\nHost: m66.net\r\n\r\n");
if ($writeResult === false) {
echo "写入ဆုံးရှုံး: " . socket_strerror(socket_last_error($socket)) . "\n";
// ဒီမှာအမှားမက်ဆေ့ခ်ျကိုရှုပ်ထွေးနိုင်ပါသည်,ဘာဖြစ်လို့လဲဆိုတော့အရင်အမှားကိုရှင်းလင်းမထားဘူး
}
?>
အထက်ဖော်ပြပါကုဒ်တွင် Socket_Close_Error ($ socket) လျှင်, Socket_write () မအောင်မြင် ပါကအမှားအယွင်းများကိုမခေါ်ပါ။
ပြီးနောက်တစ်ခုချင်းစီ socket error ကို ဖမ်းယူပြီး,
ဤသည်အမှားအယွင်းများကိုအချိန်မီရှင်းလင်းပြီးအမွေအနှစ်အကျိုးသက်ရောက်မှုများကိုရှောင်ရှားကြောင်းသေချာသည်။
ယုတ္တိဗေဒကိုတတ်နိုင်သမျှရှင်းလင်းစွာနှင့်အချိန်မှန်အဖြစ်ကိုင်တွယ်ပါ နောက်ဆက်တွဲစစ်ဆင်ရေးများကိုအလွဲသုံးစားပြုခြင်းကိုကာကွယ်ရန်အမှားအယွင်းကိုကြာမြင့်စွာမသိမ်းဆည်းပါနှင့်။
အသေးစိတ်မှတ်တမ်းများကိုပြုလုပ်ရန် Socket_Last_Error () နှင့် Socket_Stror ()) <br> <br> ၎င်းသည်ပြ the နာကိုနေရာချထားရန်ကူညီသည်။ သို့သော်အမှားအယွင်းသည်တိကျမှသာလျှင်။
Socket_Close_Error () ကိုမေ့လျော့ခြင်းကြောင့်ဖြစ်ပေါ်လာသောအမှားအယွင်းများသည်အမှားအယွင်းများ၏ "အမွေအနှစ်" ဟူသောအဓိကအကြောင်းအရင်းမှာနောက်ဆက်တွဲစစ်ဆင်ရေးကိုယခင်အမှားများမှမှန်ကန်စွာခွဲခြားရန်ပျက်ကွက်ခြင်းကြောင့်ဖြစ်သည်။ အမှားအယွင်းကိုစံသတ်မှတ်ခြင်းအားဖြင့် Socket Programming တွင်အရည်အသွေးကိုင်တွယ်ခြင်းနှင့် debugging စွမ်းဆောင်ရည်အမှားများကိုအလွန်တိုးတက်စေနိုင်သည်။