လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP CLI MODE တွင် Socket_Accept ကို အသုံးပြု. 0 န်ဆောင်မှုကိုမည်သို့တည်ဆောက်ရမည်နည်း

PHP CLI MODE တွင် Socket_Accept ကို အသုံးပြု. 0 န်ဆောင်မှုကိုမည်သို့တည်ဆောက်ရမည်နည်း

M66 2025-05-18

PHP ၏ CLI (command line interface) mode တွင် Socket_accept () function ကိုသုံးနိုင်သည်။ ၎င်းသည် PHP ကို ​​အသုံးပြု. PHP ကို ​​အသုံးပြု. PHP ကို ​​အသုံးပြု. PHP ကို ​​အသုံးပြု. PHP ကို ​​အသုံးပြု. တုံ့ပြန်မှုများကိုလက်ခံရန်ခွင့်ပြုသည်။ PHP သည် 0 န်ဆောင်မှုများကိုရိုးရာသဘောဖြင့်တည်ဆောက်ရန် ဦး စားပေးဘာသာစကားမဟုတ်သော်လည်း၎င်းသည်ပေါ့ပါးသော 0 န်ဆောင်မှုများကိုအလွယ်တကူစမ်းသပ်ရန်သို့မဟုတ်တည်ဆောက်ရန်ခွင့်ပြုရန် APIs ကိုအလုံအလောက်ပေးထားသည်။

အခြေခံသဘောတရားများ

Network 0 န်ဆောင်မှုတစ်ခုမချခင်အောက်ပါ PHP socket function များကိုသင်နားလည်ရန်လိုအပ်သည်။

  • Socket_create () : Socket Resourt ကိုဖန်တီးပါ။

  • Socket_bind () : socket ကို IP လိပ်စာနှင့်ဆိပ်ကမ်းသို့ချည်နှောင်ထားသည်။

  • Socket_listen () : အဝင်ဆက်သွယ်မှုများကိုနားထောင်ပါ။

  • Socket_Accept () - ဆက်သွယ်မှုတောင်းဆိုမှုကိုလက်ခံသည်။

  • Socket_read () / Socket_write () - ဒေတာများကိုလက်ခံရရှိရန်နှင့်ပို့ရန်အသုံးပြုသည်။

  • Socket_Close () ဆက်သွယ်မှုကိုပိတ်ပါ။

ဥပမာ - ရိုးရှင်းသော TCP ဆာဗာတစ်ခုကိုတည်ဆောက်ပါ

Socket_Accept ကို အသုံးပြု. တည်ဆောက်ထားသောရိုးရှင်းသော PHP TCP ဆာဗာ၏ဥပမာတစ်ခုမှာ ()

 <?php
$host = "0.0.0.0";
$port = 9000;

// socket တစ်ခုဖန်တီးပါ
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($sock === false) {
    die("socket_create() failed: " . socket_strerror(socket_last_error()) . "\n");
}

// လိပ်စာနှင့်ဆိပ်ကမ်းသို့ချည်နှောင်ခြင်း
if (!socket_bind($sock, $host, $port)) {
    die("socket_bind() failed: " . socket_strerror(socket_last_error($sock)) . "\n");
}

// စောင့်ကြည့်လေ့လာရေးစတင်ပါ
if (!socket_listen($sock, 5)) {
    die("socket_listen() failed: " . socket_strerror(socket_last_error($sock)) . "\n");
}

echo "ဆာဗာစတင်သည်,ဆိပ်ကမ်းကိုနားထောင်ပါ $port...\n";

while (true) {
    // ဆက်သွယ်မှုကိုလက်ခံပါ
    $client = socket_accept($sock);
    if ($client === false) {
        echo "socket_accept() failed: " . socket_strerror(socket_last_error($sock)) . "\n";
        continue;
    }

    // client ကိုတောင်းဆိုမှုကိုဖတ်ပါ
    $input = socket_read($client, 1024);
    echo "တောင်းဆိုမှုကိုလက်ခံရရှိခဲ့သည်:" . trim($input) . "\n";

    // တုံ့ပြန်မှုအကြောင်းအရာတည်ဆောက်ပါ
    $response = "အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည် m66.net စမ်းသပ်ခြင်း 0 န်ဆောင်မှု!မင်းပို့လိုက်တာက:$input\n";

    // client ကိုပြန်သွားပါ
    socket_write($client, $response, strlen($response));

    // Client Convice Connection
    socket_close($client);
}

// အဓိက socket ကိုပိတ်ပါ(သီအိုရီအရ၎င်းကိုမည်သည့်အခါကမျှဖြင့်ပြုလုပ်မည်မဟုတ်)
socket_close($sock);

စစ်ဆင်ရေး mode ကို

အထက်ပါကုဒ်ကို server.php အဖြစ်သိမ်းပြီး command line မှတဆင့် run ပါ။

 php server.php

ဤ script သည် port 9000 ကိုနားထောင်ပြီး 0 န်ဆောင်မှုခံယူသူကိုချိတ်ဆက်ရန်စောင့်ဆိုင်းမည်။ ဆာဗာနှင့်ချိတ်ဆက်ရန် Telnet သို့မဟုတ်အခြား TCP client Tools များကိုသုံးနိုင်သည်။

 telnet 127.0.0.1 9000

မည်သည့်စာသားနှင့်နှိပ်ခြင်းမပြုပြီးနောက်, ဆာဗာသည်စာသားကိုကြိုဆိုသောသတင်းစကားဖြင့်စာသားကိုပဲ့တင်ထပ်လိမ့်မည်။

မှတ်သားရန်အရာ

  • PHP တွင် sockets extension ကို Enable လုပ်ထားပါစေ ( PHP -M မှတစ်ဆင့်စစ်ဆေးနိုင်သည်)

  • 0 န်ဆောင်မှုသည်တစ်ကိုယ်ရေချည်မျှင်တစ်ခုဖြစ်ပြီးတစ်ကြိမ်လျှင်တစ်ခုသာဆက်သွယ်မှုကိုသာလုပ်ဆောင်နိုင်သည်။ ဆက်သွယ်မှုမျိုးစုံကိုတစ်ပြိုင်နက်တည်းလုပ်ဆောင်ရန်လိုအပ်ပါက PCNTL_Fork () ကို သုံးနိုင်သည်သို့မဟုတ် SWOOLE ကဲ့သို့သောပရော်ဖက်ရှင်နယ် 0 န်ဆောင်မှုများကိုသင်အသုံးပြုနိုင်သည်။

  • ဤသို့သောရိုးရှင်းသောအကောင်အထည်ဖော်မှုကိုမသုံးပါနှင့်, ၎င်းတွင်လုံခြုံရေးနှင့်အမှားသည်းခံမှုမရှိခြင်းမရှိပါ။

လျှောက်လွှာဇာတ်လမ်းတစ်ပုဒ်

PHP သည် Network 0 န်ဆောင်မှုဖွံ့ဖြိုးတိုးတက်မှုအတွက်အဓိကဘာသာစကားမဟုတ်သော်လည်းထိုကဲ့သို့သော socket socket social social social sections များကိုအသုံးပြုနိုင်သည်။

  • ရိုးရှင်းသော debugging tool ကို

  • LAN ဒေတာထုတ်လွှင့်ခြင်းနှင့် reception 0 န်ကြီးဌာန

  • စိတ်ကြိုက် protocols ၏ရှေ့ပြေးပုံစံ

  • Non-web စနစ်များနှင့်အတူဒေတာများဖလှယ်ခြင်း (ထိုကဲ့သို့သောဟာ့ဒ်ဝဲပစ္စည်းများကဲ့သို့သော)