လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP's Socket_Acception () function ကို အသုံးပြု. ရိုးရှင်းသော echo server (echo server) ကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း။

PHP's Socket_Acception () function ကို အသုံးပြု. ရိုးရှင်းသော echo server (echo server) ကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း။

M66 2025-06-26

PHP တွင်ကွန်ယက်ဝန်ဆောင်မှုပရိုဂရမ်များကို Socket extensions များမှတဆင့်ဖန်တီးနိုင်သည်။ ၎င်းတို့အနက် Socket_Accept () function သည် TCP-based server applications များကိုတည်ဆောက်သည့်အခါအဓိကလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည် Socket_Accept ကို အသုံးပြု. ရိုးရှင်းသော echo server (echo server) ကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုဖော်ပြရန်အပြည့်အဝဥပမာကိုအသုံးပြုမည်။

1 ။ socket_accept () function ကိုမိတ်ဆက်ပါ

Socket_Accept () သည် client ထံမှဆက်သွယ်မှုတောင်းဆိုမှုကိုလက်ခံရန်အသုံးပြုသည်။ ဆက်သွယ်မှု 0 င်ရောက်သည်အထိ server Socket ရှိဤလုပ်ဆောင်မှုလုပ်ကွက်များ။ အောင်မြင်သောအခါ၎င်းသည် client နှင့်ဆက်သွယ်ရန်အသုံးပြုနိုင်သည့် socient အရင်းအမြစ်အသစ်ကိုပြန်ပို့သည်။

သဒ္ဒါ:

 resource socket_accept ( resource $socket )
  • $ Socket သည် socket_create () နှင့် socket_bind () မှတဆင့် server socket ကိုဖန်တီးပြီးနားထောင်ခဲ့သည်။

  • client နှင့်ဆက်သွယ်ထားသော societ အရင်းအမြစ်တစ်ခုကိုပြန်ပို့သည်။

2 ။ ECHO ဆာဗာတစ်ခုတည်ဆောက်ရန်အခြေခံအဆင့်များ

ရိုးရှင်းသောပဲ့တင်သံဆာဗာတစ်ခုကိုဖန်တီးရန်ပြီးပြည့်စုံသောအဆင့်များမှာ -

1 ။ ဆာဗာ socket တစ်ခုဖန်တီးပါ

 $server = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($server === false) {
    die("socket_create() ဆုံးရှုံး: " . socket_strerror(socket_last_error()) . "\n");
}

2 ။ IP address နှင့် port ကိုချည်နှောင်ခြင်း

 $host = '0.0.0.0';
$port = 12345;
if (!socket_bind($server, $host, $port)) {
    die("socket_bind() ဆုံးရှုံး: " . socket_strerror(socket_last_error($server)) . "\n");
}

3 ။ ဆက်သွယ်မှုကိုနားထောင်ပါ

 if (!socket_listen($server, 5)) {
    die("socket_listen() ဆုံးရှုံး: " . socket_strerror(socket_last_error($server)) . "\n");
}
echo "ဆာဗာစတင်သည်,ဆိပ်ကမ်းကိုနားထောင်ပါ $port ...\n";

4 ။ ဆက်သွယ်မှုများကိုလက်ခံခြင်းနှင့်လုပ်ငန်းစဉ်အချက်အလက်များကိုလက်ခံပါ

 while (true) {
    $client = socket_accept($server);
    if ($client === false) {
        echo "socket_accept() ဆုံးရှုံး: " . socket_strerror(socket_last_error($server)) . "\n";
        continue;
    }

    $msg = "echo server ကိုဆက်သွယ်ရန်ကြိုဆိုပါသည်!ကျေးဇူးပြု. အကြောင်းအရာကိုထည့်ပါ,ဆာဗာသည်လာလိမ့်မည်。\n";
    socket_write($client, $msg, strlen($msg));

    while (true) {
        $input = socket_read($client, 2048, PHP_NORMAL_READ);
        if ($input === false || trim($input) === 'exit') {
            break;
        }
        $input = trim($input);
        $output = "သင်ရိုက်ထည့်ခဲ့သည်: $input\n";
        socket_write($client, $output, strlen($output));
    }

    socket_close($client);
    echo "client connection ကိုပိတ်ထားသည်。\n";
}

5 ။ ဆာဗာကိုပိတ်ပါ

ဆာဗာကိုသင်ရပ်တန့်ရန်လိုအပ်သည့်အခါအဓိက socket ကိုသင်ပိတ်နိုင်သည်။

 socket_close($server);

3 ။ စမ်းသပ်မှုနည်းလမ်း

Telnet သို့မဟုတ် client tool ကိုဆာဗာသို့ချိတ်ဆက်ရန် TCP ဆက်သွယ်မှုကိုထောက်ပံ့သောမည်သည့် client ကိုမဆိုသုံးနိုင်သည်။

 telnet m66.net 12345

ဆက်သွယ်မှုအောင်မြင်ပြီးနောက်ဆာဗာသည်ကြိုဆိုသည့်သတင်းစကားကိုတုံ့ပြန်ပြီးသင်ထည့်သွင်းသမျှကိုပြန်ပို့လိမ့်မည်။

4 ။ မှတ်စုများ

  • PHP ၏ socket extension ကိုပုံမှန်အားဖြင့်ဖွင့်ထားပြီး PHP.ini တွင်ဖွင့်ရန်လိုအပ်သည်။

  • ဤဥပမာသည် mode ကိုပိတ်ဆို့ခြင်းနှင့်သရုပ်ပြခြင်းနှင့်သင်ကြားရေးရည်ရွယ်ချက်များအတွက်သင့်တော်သည်။ အမှန်တကယ်ထုတ်လုပ်မှုပတ် 0 န်းကျင်များတွင်ပိတ်ဆို့ခြင်းမဟုတ်သော mode ကိုအသုံးပြုရန်သို့မဟုတ် client properky အထောက်အပံ့ကိုရရှိရန် stream_select () ကဲ့သို့သောနည်းလမ်းများကိုအသုံးပြုရန်အကြံပြုသည်။

  • Firewall နှင့် Operating System သည်နားထောင်ခြင်းဆိပ်ကမ်းများကိုဆက်သွယ်ခွင့်ပြုရန်သေချာစေပါ။

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

Socket_Accept ()) , PHP သည် TCP ကွန်ယက်လျှောက်လွှာကို အခြေခံ. တည်ဆောက်နိုင်သည်။ ဤဆောင်းပါးတွင်အကောင်အထည်ဖော်ထားသောပဲ့တင်သံဆာဗာသည် Socket Programming ယန္တရားကိုနားလည်ရန်အတွက်ကောင်းမွန်သောအစတစ်ခုဖြစ်သည်။ chat rooms, remote control စသည့်စသည်တို့စသည့်ပိုမိုရှုပ်ထွေးသောကွန်ယက် 0 န်ဆောင်မှုများကိုအကောင်အထည်ဖော်ရန်ဤအပေါ် မူတည်. ထပ်မံတိုးချဲ့နိုင်သည်။

ပဲ့တင်သံဆာဗာဥပမာသည် Socket Programming တွင်အခြေခံအကျဆုံးမော်ဒယ်များအနက်မှတစ်ခုဖြစ်သည်။ ဤဖောင်ဒေးရှင်းများကိုကျွမ်းကျင်စေခြင်းအားဖြင့် PHP ၏ network compacen ်ဌာန်းချက်တွင်အလားအလာသည်အတိုင်းအဆက်အသွယ်ရှိသည်။