လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> socket_accept () နှင့် socket_shutdown () socket_shutdown () ကိုမှန်ကန်စွာချိတ်ဆက်ရန်မည်သို့မှန်ကန်စွာချိတ်ဆက်ရန်နည်း။

socket_accept () နှင့် socket_shutdown () socket_shutdown () ကိုမှန်ကန်စွာချိတ်ဆက်ရန်မည်သို့မှန်ကန်စွာချိတ်ဆက်ရန်နည်း။

M66 2025-06-23

PHP ကိုအသုံးပြုပြီး programming societed society-based networks များသည် connection များကိုတည်ဆောက်ခြင်းနှင့်ချိတ်ဆက်ခြင်းကိုအဓိကခြေလှမ်းနှစ်ခုဖြစ်သည်။ 0 န်ဆောင်မှုခံယူသူမှဆက်သွယ်မှုများကိုလက်ခံရန် Socket_accept () သည် မည် သည့်နေရာတွင်အသုံးပြုသည်။ ဤလုပ်ဆောင်ချက်နှစ်ခုကိုသင့်လျော်သောတွဲဖက်ခြင်းသည်ဆက်သွယ်ရေးတည်ငြိမ်မှုနှင့်အရင်းအမြစ်များကိုလွှတ်ပေးရန်အတွက်အထူးအရေးကြီးသည်။ ဤဆောင်းပါးသည်သူတို့၏မှန်ကန်သောအသုံးပြုမှုနှင့်ကြိုတင်ကာကွယ်မှုများပိုမိုလေ့လာဆန်းစစ်ပါလိမ့်မည်။

1 ။ Socket_Accept ကိုနားလည်ပါ။

Socket_create () နှင့် Socket_bind () socket_bind ကိုအသုံးပြုသောအခါ socketing socket ကိုဖန်တီးရန်နှင့်ချည်နှောင်ရန်အသုံးပြုသောအခါ client_listen () မှတဆင့် client client တောင်းဆိုမှုများကိုစတင်နားထောင်လိမ့်မည်။ ဤအချိန်တွင် Socket_Accept () သည် 0 င်ရောက်လာသည့်ဆက်သွယ်မှုတောင်းဆိုမှုကိုလက်ခံရန်နှင့် client နှင့်ဆက်သွယ်ရန်အသုံးပြုသော societ အရင်းအမြစ်အသစ်ကိုပြန်ပို့ခြင်းအတွက်တာဝန်ရှိသည်။

ဥပမာ -

 $server = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($server, '0.0.0.0', 8080);
socket_listen($server);

while (true) {
    $client = socket_accept($server);
    if ($client) {
        socket_write($client, "အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည် m66.net\r\n");
        // နောက်ဆက်တွဲဆက်သွယ်ရေးယုတ္တိဗေဒ
    }
}

ဤတွင် $ client သည် connection socket အသစ်တစ်ခုဖြစ်ပြီး $ ဆာဗာသည် နားထောင်နေတုန်းဖြစ်သည်။

2 ။ အဘယ်ကြောင့် Socket_shutdown () လိုအပ်ပါသည်

socket_shutdown () ကို ဖတ်ရှုခြင်း, ရေးခြင်း, ရေးခြင်း, ရေးခြင်းသို့မဟုတ်ဖတ်ခြင်းနှင့်ရေးသားခြင်းနှင့်ရေးသားခြင်းနှင့်ရေးသားခြင်းနှင့်ရေးသားခြင်းနှင့်ရေးသားခြင်းနှင့်ရေးသားခြင်းနှင့်ရေးသားခြင်းနှင့်ရေးသားရန်အသုံးပြုသည်။ ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -

 bool socket_shutdown(resource $socket, int $how = 2);

Parameter $ ၏တန်ဖိုး -

  • 0 : ဖတ်ပါဘက်

  • 1 : ရေးရန်အခြမ်းကိုပိတ်ပါ

  • 2 : ဖတ်ရန်နှင့်ရေးပါ။ ရေးပါ (ပုံမှန်)

အခြားပါတီကိုလျစ်လျူရှုရန် Socket_shutdown () ကို သုံးပါ။ Connection သည်အနီးကပ်ဆက်သွယ်မှုကြောင့် client အမှားများကိုရှောင်ရှားရန်ပြင်ဆင်ထားပါ။

3 ။ မှန်ကန်သောပိတ်ခြင်းအမိန့်

  1. Enness ဆက်သွယ်ရေး - စာရေးခြင်းကြားခံရှင်းလင်းမှုကိုသေချာစေရန်ပထမ ဦး ဆုံးကူးစက်သောအချက်အလက်များကိုအရင်ထုတ်လွှင့်ရန်အချက်အလက်များကိုဖြည့်စွက်ပါ။

  2. Call Socket_shutdown () - ဆက်သွယ်မှုကိုကြည့်ပါ။

  3. Call Socket_Close () : Socket Socket Resource ကိုဖြန့်ချိပါ။

ဥပမာ -

 socket_write($client, "သွားတော့မယ်,လာရောက်လည်ပတ်မှုအတွက်ကျေးဇူးတင်ပါတယ် m66.net\r\n");
// Cloud နှင့် Side ကိုဖတ်ပါ
socket_shutdown($client);
// အရင်းအမြစ်များကိုအခမဲ့
socket_close($client);

ဤအမိန့်သည် 0 န်ဆောင်မှုခံယူသူသည်မက်ဆေ့ခ်ျပို့ခြင်းတွင်ပိတ်ထားမည့်အစား client ကို "Goodbye" မက်ဆေ့ခ်ျကိုရရှိနိုင်ပါသည်။

4 ။ ဘုံအမှားများကိုရှောင်ပါ

ချို့ယွင်းချက်: Socket_shutdown () ဒေတာအရေးအသားအပြီးသတ်မဟုတ်သည့်အခါချက်ချင်း

 socket_write($client, "သွားတော့မယ်"); // ဒေတာနေဆဲကြားခံ၌ရှိနိုင်ပါသည်
socket_shutdown($client);

ဤအလေ့အကျင့်သည် client ကိုအပြည့်အဝသတင်းအချက်အလက်မရရှိစေပါ။ ရေးသားခြင်းပြီးဆုံးကြောင်းအတည်ပြုပြီးနောက်ပိတ်ထားသင့်သည်။

ချို့ယွင်းချက် - Socket_Accept () သည်ဆက်သွယ်မှုကိုမပိတ်ပါ

အကယ်. Socket_shutDown () နှင့် Socket_Close () ကိုမခေါ်ပါကအရင်းအမြစ် descriptors များပင်ပန်းနွမ်းနယ်မှုကြောင့်အရင်းအမြစ်သည်ကြာရှည်စွာပြေးပြီးနောက်လေထုပေါက်ကွဲလိမ့်မည်။

5 ။ Socket_set_Set_Block () သို့မဟုတ် Non-blocking mode ကိုသုံးပါ

အချို့သောအခြေအနေများတွင် (ဥပမာ concurrent server များကဲ့သို့), ပိတ်ဆို့ခြင်းမဟုတ်သော mode ကိုအသုံးပြုသည်။ ဤအချိန်တွင် societ_accept () သည် အောင်မြင်စွာပြန်လည်ရောက်ရှိမှုကိုအောင်မြင်စွာပြန်ပို့ခြင်းရှိ, မရှိစစ်ဆေးရန်သတိထားသင့်သည်။

 socket_set_nonblock($server);
$client = @socket_accept($server);
if ($client !== false) {
    // ဆက်သွယ်ရေးနှင့်ပိတ်ခြင်းယုတ္တိဗေဒ
}

6 ။ အကျဉ်းချုပ်

Socket_Accept ကို အသုံးပြု. ဆက်သွယ်မှုများကိုလက်ခံရရှိပြီးနောက် socket_shutdown () နှင့် socket_close () socket_close () နှင့်ပူးပေါင်းဆောင်ရွက်ရန်သေချာပါစေ။ Socket_shutDown () ၏ function သည် function () function ကိုလက်မလျှော့ဘဲအဆက်ဖြတ်ခြင်းအတွက်ပြင်ဆင်ရန်အတွက်အဆက်ဖြတ်ခြင်းအတွက်ပြင်ဆင်ရန်အတွက်အခြားပါတီအားအကြောင်းကြားရန်ဖြစ်သည်။ ဤမှန်ကန်သောဖြစ်စဉ်ကိုကျွမ်းကျင်မှုသည် Socket Confirm ၏ကြံ့ခိုင်မှုနှင့်အတွေ့အကြုံကိုတိုးတက်စေနိုင်သည်။

အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဖောက်သည်များစွာသို့မဟုတ်ပိုမိုရှုပ်ထွေးသောယုတ္တိဗေဒပါ 0 င်ပါက stream_socket_server () ကို အသုံးပြု. (သို့ ) ရွေးချယ်ခြင်း () / Poll () / Polle () / Polle () / Poll () / Poll () / Poll () / Poll () / Poll () / Polle () / Poll () / Polle ()) ကိုပေါင်းစပ်ရန်အကြံပြုသည်။