PHP ကိုအသုံးပြုပြီး programming societed society-based networks များသည် connection များကိုတည်ဆောက်ခြင်းနှင့်ချိတ်ဆက်ခြင်းကိုအဓိကခြေလှမ်းနှစ်ခုဖြစ်သည်။ 0 န်ဆောင်မှုခံယူသူမှဆက်သွယ်မှုများကိုလက်ခံရန် 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 အသစ်တစ်ခုဖြစ်ပြီး $ ဆာဗာသည် နားထောင်နေတုန်းဖြစ်သည်။
socket_shutdown () ကို ဖတ်ရှုခြင်း, ရေးခြင်း, ရေးခြင်း, ရေးခြင်းသို့မဟုတ်ဖတ်ခြင်းနှင့်ရေးသားခြင်းနှင့်ရေးသားခြင်းနှင့်ရေးသားခြင်းနှင့်ရေးသားခြင်းနှင့်ရေးသားခြင်းနှင့်ရေးသားခြင်းနှင့်ရေးသားခြင်းနှင့်ရေးသားရန်အသုံးပြုသည်။ ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
bool socket_shutdown(resource $socket, int $how = 2);
Parameter $ ၏တန်ဖိုး -
0 : ဖတ်ပါဘက်
1 : ရေးရန်အခြမ်းကိုပိတ်ပါ
2 : ဖတ်ရန်နှင့်ရေးပါ။ ရေးပါ (ပုံမှန်)
အခြားပါတီကိုလျစ်လျူရှုရန် Socket_shutdown () ကို သုံးပါ။ Connection သည်အနီးကပ်ဆက်သွယ်မှုကြောင့် client အမှားများကိုရှောင်ရှားရန်ပြင်ဆင်ထားပါ။
Enness ဆက်သွယ်ရေး - စာရေးခြင်းကြားခံရှင်းလင်းမှုကိုသေချာစေရန်ပထမ ဦး ဆုံးကူးစက်သောအချက်အလက်များကိုအရင်ထုတ်လွှင့်ရန်အချက်အလက်များကိုဖြည့်စွက်ပါ။
Call Socket_shutdown () - ဆက်သွယ်မှုကိုကြည့်ပါ။
Call Socket_Close () : Socket Socket Resource ကိုဖြန့်ချိပါ။
ဥပမာ -
socket_write($client, "သွားတော့မယ်,လာရောက်လည်ပတ်မှုအတွက်ကျေးဇူးတင်ပါတယ် m66.net\r\n");
// Cloud နှင့် Side ကိုဖတ်ပါ
socket_shutdown($client);
// အရင်းအမြစ်များကိုအခမဲ့
socket_close($client);
ဤအမိန့်သည် 0 န်ဆောင်မှုခံယူသူသည်မက်ဆေ့ခ်ျပို့ခြင်းတွင်ပိတ်ထားမည့်အစား client ကို "Goodbye" မက်ဆေ့ခ်ျကိုရရှိနိုင်ပါသည်။
ချို့ယွင်းချက်: Socket_shutdown () ဒေတာအရေးအသားအပြီးသတ်မဟုတ်သည့်အခါချက်ချင်း
socket_write($client, "သွားတော့မယ်"); // ဒေတာနေဆဲကြားခံ၌ရှိနိုင်ပါသည်
socket_shutdown($client);
ဤအလေ့အကျင့်သည် client ကိုအပြည့်အဝသတင်းအချက်အလက်မရရှိစေပါ။ ရေးသားခြင်းပြီးဆုံးကြောင်းအတည်ပြုပြီးနောက်ပိတ်ထားသင့်သည်။
ချို့ယွင်းချက် - Socket_Accept () သည်ဆက်သွယ်မှုကိုမပိတ်ပါ
အကယ်. Socket_shutDown () နှင့် Socket_Close () ကိုမခေါ်ပါကအရင်းအမြစ် descriptors များပင်ပန်းနွမ်းနယ်မှုကြောင့်အရင်းအမြစ်သည်ကြာရှည်စွာပြေးပြီးနောက်လေထုပေါက်ကွဲလိမ့်မည်။
အချို့သောအခြေအနေများတွင် (ဥပမာ concurrent server များကဲ့သို့), ပိတ်ဆို့ခြင်းမဟုတ်သော mode ကိုအသုံးပြုသည်။ ဤအချိန်တွင် societ_accept () သည် အောင်မြင်စွာပြန်လည်ရောက်ရှိမှုကိုအောင်မြင်စွာပြန်ပို့ခြင်းရှိ, မရှိစစ်ဆေးရန်သတိထားသင့်သည်။
socket_set_nonblock($server);
$client = @socket_accept($server);
if ($client !== false) {
// ဆက်သွယ်ရေးနှင့်ပိတ်ခြင်းယုတ္တိဗေဒ
}
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 ()) ကိုပေါင်းစပ်ရန်အကြံပြုသည်။