PHP Network Programming တွင် Socketets များသည်လုပ်ငန်းစဉ်ဆိုင်ရာဆက်သွယ်ရေးနှင့်ကွန်ယက်အချက်အလက်ထုတ်လွှင့်ခြင်းများကိုနားလည်သဘောပေါက်ရန်အရေးကြီးသောကိရိယာတစ်ခုဖြစ်သည်။ Socketets များကိုပြုပြင်ပြောင်းလဲနေစဉ်သင်က connection transment, data transmission under and end ကဲ့သို့သော အမျိုးမျိုးသောအမှားအယွင်းများကိုမလွှဲမရှောင်သာဖြည့်ဆည်းပေးနိုင်လိမ့်မည်။
ဤဆောင်းပါးသည် Socket_Close_Error () function ကိုလေ့လာခြင်း, သက်ဆိုင်သည့်အခြေအနေများနှင့်ကုဒ်တွင်မည်သို့အသုံးပြုရမည်ကိုလေ့လာပါလိမ့်မည်။
Socket_Close_Error () သည် php socket extrame တွင် function တစ်ခုဖြစ်ပြီးသတ်မှတ်ထားသော socket တွင်အမှားအယွင်းရှိသည့်အမှားအယွင်းကိုရှင်းလင်းစေသည့် function တစ်ခုဖြစ်သည်။ Developer များကယခင်စစ်ဆင်ရေး၏အမှားအယွင်းများကိုရှောင်ရှားရန်ဤလုပ်ဆောင်မှုကိုအသုံးပြုရန်ဤလုပ်ဆောင်မှုကိုအသုံးပြုပါ။
function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
bool socket_clear_error ( resource $socket )
Parameter $ socket သည်မှန်ကန်သော socket အရင်းအမြစ်ဖြစ်သည်။
ပြန်လာသောတန်ဖိုးသည် boolean value တစ်ခုဖြစ်သည်။ အမှားကိုရှင်းလင်းပြီး အောင်မြင်စွာ ပြန်လည်ရောက်ရှိလာသည်နှင့်အမှားသည်ပျက်ကွက်ပြီးနောက် မှားယွင်းသော အမှားဖြစ်သည်။
ကွန်ယက်ဆက်သွယ်ရေးကာလအတွင်းအမှားအယွင်းများတွင် Sockets တွင်ဖြစ်ပေါ်နိုင်ပြီး PHP socks socket အရင်းအမြစ်များသည်ဤအမှားအယွင်းများကိုမှတ်တမ်းတင်လိမ့်မည်။ အချိန်မီမသန့်ရှင်းပါကဤအမှားအယွင်းများသည်နောက်ဆက်တွဲဖတ်ရှုခြင်းနှင့်ရေးသားခြင်းကိုအကျိုးသက်ရောက်နိုင်သည်။
ဥပမာအားဖြင့်, သင်သည်ပြတ်တောင်းပြတ်တောင်းဖြည့်တင်းခြင်းများကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါ Socket ၏အမှားအယွင်းများကိုအချိန်မီပြန်လည်သတ်မှတ်ခြင်းမပြုနိုင်ပါ။ အမှားအယွင်းများမရှင်းလင်းပါကအမှားအယွင်းများကိုရှာဖွေတွေ့ရှိရန်အမှားအယွင်းများကိုရှာဖွေတွေ့ရှိရန်အမှားအယွင်းများကိုမှန်ကန်စွာတုံ့ပြန်ရန်အခက်တွေ့နေသည်။
အမှားကိုင်တွယ်ပြီးနောက် status ကို reset သင်ဖမ်းပြီး socket အမှားများကိုဖမ်းပြီးနောက်တွင်နောက်ဆက်တွဲယုတ္တိဗေဒကိုထိခိုက်စေသည့်အမှားဟောင်းကိုရှောင်ရှားရန် Socket_Close_Error () ကိုသင်ခေါ်ဆိုနိုင်သည်။
နှစ်ပေါင်းများစွာဆက်သွယ်မှုများသို့မဟုတ်မြဲချိတ်ဆက်မှုများကိုမြှင့်တင်ရန် CHET 0 န်ဆောင်မှုများသို့မဟုတ်ဂိမ်းဆာဗာများကဲ့သို့သော socket connection များကိုအချိန်ကြာမြင့်စွာပြုလုပ်ထားသောအခြေအနေများတွင်ဒေတာများကိုအကြိမ်ကြိမ်ရေးသားရန်လိုအပ်သည်။ ဆက်သွယ်မှုကိုပုံမှန်အခြေအနေတွင်သေချာစေရန်စစ်ဆင်ရေးတစ်ခုစီပြီးသွားပြီးနောက်အမှားများကိုပြီးစီးပြီးနောက်အမှားများကိုရှင်းလင်းပါ။
ရှာဖွေတွေ့ရှိခြင်းနှင့်ပြန်လည်ကြိုးစားခြင်းယန္တရားအမှား Retry ယန္တရားကိုအကောင်အထည်ဖော်သည့်အခါအမှားတစ်ခုနှင့်ဆက်သွယ်မှုကိုကြိုးစားပါကဤလုပ်ဆောင်ချက်ကိုတောင်းဆိုခြင်းသည်အမှားအယွင်းများကိုရှင်းလင်းပြီးပြန်လည်ကြိုးစားခြင်းကိုပိုမိုတိကျမှန်ကန်စေသည်။
အောက်ပါဥပမာသည်အမှားအယွင်းကိုမည်သို့ရှင်းလင်းရမည်နှင့် Socket Erituer ကိုဖြစ်ပေါ်ပြီးနောက်ဆက်လက်လုပ်ဆောင်သည်ကိုပြသသည်။
<?php
// ဖန်တီး TCP Sockets
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
die("ဖန်တီးSockets失败: " . socket_strerror(socket_last_error()));
}
// ဆာဗာကိုဆက်သွယ်ပါ
$result = socket_connect($socket, "m66.net", 80);
if ($result === false) {
echo "ဆက်သွယ်မှုမအောင်မြင်ပါ: " . socket_strerror(socket_last_error($socket)) . PHP_EOL;
// အမှားအယွင်းကိုရှင်းပါ,ထပ်ကြိုးစားရန်သို့မဟုတ်အခြားစစ်ဆင်ရေးကြိုးစားရန်ပြင်ဆင်ပါ
if (socket_clear_error($socket)) {
echo "Sockets错误状态已清除,ထပ်ကြိုးစားရန်အဆင်သင့်。" . PHP_EOL;
} else {
echo "无法清除Sockets错误状态。" . PHP_EOL;
}
socket_close($socket);
exit;
}
// ပေးပို့ HTTP မေးမြန်း
$request = "GET / HTTP/1.1\r\nHost: m66.net\r\nConnection: Close\r\n\r\n";
socket_write($socket, $request, strlen($request));
// တုံ့ပြန်မှုကိုဖတ်ပါ
$response = '';
while ($out = socket_read($socket, 2048)) {
$response .= $out;
}
echo $response;
socket_close($socket);
?>
ဒီဥပမာမှာဆက်သွယ်မှုမအောင်မြင်ပါကအမှားအယွင်းများကိုပြန်လည်ပြုပြင်ရန်သို့မဟုတ်အခြားအမှားများကိုကိုင်တွယ်ရန်အထောက်အကူဖြစ်စေသည့်အမှားအယွင်းများကိုရှင်းလင်းရန် (သို့) အမှားအယွင်းများကိုရှင်းလင်းရန်အတွက်အမှားအယွင်းများကို ပထမဆုံးအကြိမ်ထုတ်လွှင့်သည်။
Socket_Close_Error () သည် socket အမှားများကိုကိုင်တွယ်ပြီးနောက်အမှားအယွင်းများကိုသန့်ရှင်းရေးလုပ်ရန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။
၎င်းသည်အမှားအယွင်းရှိကိုင်တွယ်ခြင်း, ရှည်လျားသောဆက်သွယ်မှုစီမံခန့်ခွဲမှုနှင့်ပြန်လည်ကြိုးစားခြင်းယန္တရားများအတွက်သင့်တော်သည်။
ဤလုပ်ဆောင်မှုကိုဆင်ခြင်တုံတရားအသုံးပြုခြင်းသည်ကွန်ယက်ဆက်သွယ်ရေး၏ပြန်လည်ထူထောင်ရေးစွမ်းရည်ကိုတိုးတက်အောင်လုပ်ခြင်းနှင့်အမှားအယွင်းများကိုတိုးတက်စေရန်ကူညီလိမ့်မည်။
Socket_Close_Error () ကိုမှန်ကန်သောနားလည်မှုနှင့်အသုံးပြုခြင်းသည် PHP Network Programming ကိုပိုမိုခိုင်မာသည့်ပြောင်းလွယ်ပြင်လွယ်ဖြစ်စေနိုင်သည်။