ပထမ ဦး စွာ stream_socket_shutdown function ရဲ့အခြေခံ syntax ကိုကြည့်ကြရအောင်။
bool stream_socket_shutdown ( resource $stream , int $how )
$ stream : stream_socient_clocess or stream_socket_server စတဲ့ function တွေကတဆင့်ဖွင့်ထားတဲ့ societ အရင်းအမြစ်တစ်ခုပါ။
$ ဘယ်လို : စစ်ဆင်ရေးကိုပိတ်ဖို့နည်းလမ်းဖြစ်ပါတယ်။ အောက်ပါကိန်းသားများထဲမှတစ်ခုကိုသုံးနိုင်သည်။
Steam_shut_rdwr : အနီးကပ်လေ့လာခြင်းနှင့်စစ်ဆင်ရေးကိုတစ်ချိန်တည်းတွင်ပြုလုပ်ပါ။
Steam_shut_rd : Read စစ်ဆင်ရေးကိုပိတ်ပါ။
Steam_shut_wr : ရေးစစ်ဆင်ရေးကိုပိတ်ပါ။
TCP protocol သည် connection oriented ဖြစ်သည်။ ဆိုလိုသည်မှာဆက်သွယ်ရေးမတိုင်မီဆက်သွယ်မှုမပြုမီနှင့်ဆက်သွယ်ရေးပြီးဆုံးပြီးနောက်ဆက်သွယ်မှုကိုပိတ်ထားရန်လိုအပ်သည်။ Stream_Socket_shutdown function ၏အခန်းကဏ် ector သည်အထူးသဖြင့်ဒေတာလွှဲပြောင်းခြင်းကိုလုပ်ဆောင်ခြင်းကိုပြုလုပ်ပြီးနောက်,
ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ရန် Stream_socket_client သို့မဟုတ် stream_socket_server ကို သုံးပါ။
ဒေတာလွှဲပြောင်းမှုပြီးစီးခဲ့ပြီးနောက် Stream_socket_shutdown ($ stream, stream_shut_wrwr) ကိုသုံးပါ။
ထို့နောက် Remote Host ကို data ထုတ်လွှင့်မှုကိုဖြည့်စွက်ရန်နှင့်ဆက်သွယ်မှုကိုပိတ်ရန် connection ကိုဖွင့် ရန် နှင့်ဆက်သွယ်မှုကိုပိတ်ရန်စောင့်ဆိုင်းပါ။
ပုံမှန် TCP ဆက်သွယ်မှုပိတ်ပွဲဥပမာ -
$stream = stream_socket_client("tcp://m66.net:80", $errno, $errstr);
if (!$stream) {
echo "Error: $errno - $errstr\n";
} else {
fwrite($stream, "GET / HTTP/1.1\r\nHost: m66.net\r\nConnection: close\r\n\r\n");
// ရေးရန်စစ်ဆင်ရေးကိုပိတ်ပါ,ဒေတာကိုမရှိတော့ကြောင်းဖော်ပြသည်
stream_socket_shutdown($stream, STREAM_SHUT_WR);
// တုံ့ပြန်မှုကိုဖတ်ပါ
while ($response = fgets($stream)) {
echo $response;
}
// ဖတ်ရန်စစ်ဆင်ရေးကိုပိတ်ပါ,ဆက်သွယ်မှုကိုပိတ်ပါ
stream_socket_shutdown($stream, STREAM_SHUT_RD);
fclose($stream);
}
TCP protocol တွင် stream_socket_shutdown တွင်သင့်အားစာဖတ်ခြင်းနှင့်စစ်ဆင်ရေးများကိုသီးခြားခွဲထုတ်ရန်ခွင့်ပြုသည်, ၎င်းသည်လုပ်ငန်းများကိုသီးခြားခွဲထုတ်ရန်ခွင့်ပြုသည်။
stream_shut_wr ကို သုံးတဲ့အခါဝေးလံခေါင်သီသောအိမ်ရှင်သည်များသောအားဖြင့် connection shutdown "signal ကိုလက်ခံရရှိလိမ့်မည်။
TCP protocol နှင့်မတူသည်မှာ UDP သည် connectionless protocol ဖြစ်သည်။ ထို့ကြောင့် UDP protocol တွင်မြဲမြဲချိတ်ဆက်မှုတစ်ခုတည်ဆောက်ရန်မလိုအပ်ပါ။ Steam_socket_shutdown သည် UDP protocol တွင်ပါ 0 င်သည်။
UDP socket တစ်ခုဖန်တီးရန် stream_socket_client သို့မဟုတ် stream_socket_server ကို သုံးပါ။
packet တစ်ခုပို့ပြီးနောက် Stream_socket_ShutnownStowns ကို အတိအလင်းခေါ်ရန်နှင့်ရေးသားရန်ကိုအတိအလင်းခေါ်ဆိုရန်မလိုအပ်ပါ။
UDP အချက်အလက်ပေးပို့ခြင်း၏ပုံမှန်ဥပမာ -
$stream = stream_socket_client("udp://m66.net:12345", $errno, $errstr);
if (!$stream) {
echo "Error: $errno - $errstr\n";
} else {
fwrite($stream, "Hello, UDP server!");
fclose($stream);
}
UDP protocol တွင် stream_socket_shutdown function ကိုများသောအားဖြင့်ခေါ်ရန်မလိုအပ်ပါ။ ၎င်းသည်ဟုခေါ်လျှင်ပင်အပြုအမူသည် TCP ကဲ့သို့သောဆက်သွယ်မှုကိုအကျိုးသက်ရောက်လိမ့်မည်မဟုတ်ပါ, အကြောင်းမှာ UDP protocol ကိုယ်နှိုက်သည်ဆက်သွယ်မှု၏ရှင်းလင်းသောအယူအဆမရှိပါ။
ထို့ကြောင့် UDP application pares တွင် stream_socket_shutdown function ကိုအသုံးပြုပြီးအချက်အလက်ထုတ်လွှင့်မှု၏အပြုအမူကိုသိသိသာသာပြောင်းလဲခြင်းမရှိပါ။
TCP နှင့် UDP protocols များတွင် stream_socket_shutownhutown function ကိုအသုံးပြုခြင်းတွင်သိသာထင်ရှားသည့်ကွဲပြားခြားနားမှုများရှိသည်။ TCP protocol အတွက်, က data ထုတ်လွှင့်ခြင်းများကိုသေချာစေရန်, UDP protocol တွင်၎င်း၏ဆက်သွယ်မှုမရှိသောသဘာဝကြောင့် stream_socket_shutdown ၏အခန်းကဏ် of သည်အရေးမကြီးပါ။ များသောအားဖြင့်အသုံးပြုရန်မလိုအပ်ပါ။
developer များ stream_socket_shutdown ကို သုံးသောအခါသူတို့သည်အမှန်တကယ် protocol type ပေါ်တွင် အခြေခံ. သင့်လျော်သော shutdown နည်းလမ်းကိုရွေးချယ်သင့်သည်။ TCP protocol တွင် stream_shut_wrwr နှင့် stream_shut_rd ၏ဆင်ခြင်တုံတရားအသုံးပြုခြင်းသည်ဆက်သွယ်မှုကိုမှန်ကန်သောပိတ်ခြင်းနှင့်အရင်းအမြစ်များကိုအချိန်မီဖြန့်ချိနိုင်ကြောင်းသေချာစေနိုင်သည်။ UDP protocol တွင်ရှိနေစဉ်ဤလုပ်ဆောင်မှုသည်များသောအားဖြင့်မလိုအပ်ပါ။