လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် stream_socket_server လုပ်ဆောင်မှု၏အခြေခံအဆောက်အအုံကိုအသေးစိတ်ရှင်းပြချက်

PHP တွင် stream_socket_server လုပ်ဆောင်မှု၏အခြေခံအဆောက်အအုံကိုအသေးစိတ်ရှင်းပြချက်

gitbox 2025-06-07

PHP ပရိုဂရမ်တွင် stream_socket_server လုပ်ခြင်းသည် stream-based server socket တစ်ခုဖန်တီးရန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည်ပရိုဂရမ်သည်ကွန်ယက်ဆိပ်ကမ်းတစ်ခုအတွက်နားထောင်ရန်ခွင့်ပြုသည်, client ကိုဆက်သွယ်ရန်နှင့်ထိုဆက်သွယ်မှုများကိုလုပ်ဆောင်ရန်စောင့်ဆိုင်းပါ။ Sock_Create နှင့် Sock_bind ကဲ့သို့သောရိုးရာလုပ်ငန်းဆောင်တာများနှင့်နှိုင်းယှဉ်ပါက stream_socket_server သည် ကွန်ရက် 0 န်ဆောင်မှုများ၏ဆောက်လုပ်ရေးလုပ်ငန်းစဉ်ကိုရိုးရှင်းစေခြင်း,

stream_socket_server ဆိုတာဘာလဲ။

Steam_socket_Server ဆိုသည်မှာ PHP တွင်ပါ 0 င်သော function တစ်ခုဖြစ်သည်။ ၎င်းသည် client connection များကိုလက်ခံရန်အသုံးပြုနိုင်သော stream အရင်းအမြစ်ကိုပြန်လည်ရောက်ရှိစေသည်။ ဤလုပ်ဆောင်မှုသည် TCP, UDP နှင့် UNIX ဒိုမိန်း sockets အပါအ 0 င် protocols အမျိုးမျိုးကိုထောက်ပံ့သည်။

အခြေခံ syntax

 $server = stream_socket_server("tcp://gitbox.net:8080", $errno, $errstr);
if (!$server) {
    echo "ဆာဗာတစ်ခုကို ဖန်တီး. မရပါ: $errstr ($errno)\n";
} else {
    echo "ဆာဗာဖန်တီးမှုကိုအောင်မြင်စွာ,ဆိပ်ကမ်းကိုနားထောင်ခြင်း8080\n";
}

parameter ကိုဖော်ပြချက်

  • လိပ်စာ parameters များ - များသောအားဖြင့် Protocol အမျိုးအစား (TCP, UDP) ကိုပေါင်းစပ်ခြင်း - // နှင့်အိုင်ပီလိပ်စာနှင့် port နံပါတ်များဖြစ်သည်။ ဥပမာ - TCP: //Gitbox.Net: 8080 ဆိုသည်မှာ TCP protocol သည် gitpbox.net host ၏ port 8080 ကို Listens ဟုဆိုလိုသည်။

  • အမှားနံပါတ် parameter : အမှားကုဒ်ကိုဖမ်းယူဖို့ variable ကို variable ကို။

  • အမှား string parameter : အမှားသတင်းအချက်အလက်ကိုဖမ်းယူဖို့ variable ကိုကူး။

အခြေခံအသုံးပြုမှုဥပမာများ

အောက်ဖော်ပြပါဥပမာသည် TCP screen ကို Excl Port 8080 သို့စာရင်းပြုစုထားသည့်ရိုးရှင်းသော TCP server တစ်ခုကိုပြသသည်။

 <?php
$address = "tcp://gitbox.net:8080";
$server = stream_socket_server($address, $errno, $errstr);

if (!$server) {
    die("Server Startup မအောင်မြင်ပါ: $errstr ($errno)\n");
}

echo "ဆာဗာစတင်သည်,စောင့်ရေှာက် $address\n";

while ($conn = stream_socket_accept($server)) {
    $request = fread($conn, 1024);
    echo "တောင်းဆိုမှုကိုလက်ခံရရှိခဲ့သည်: $request\n";

    $response = "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nHello from PHP server!";
    fwrite($conn, $response);
    fclose($conn);
}

fclose($server);
?>

ဥပမာပြပါ

  • client connection ကိုစောင့်ဆိုင်းရန် stream_socket_acce ကို သုံးပါ။

  • ဆက်သွယ်မှုတစ်ခုရှိပြီးတစ်ချိန်က client data ကိုဖတ်ပြီးရိုးရှင်းသောအပြောင်းအလဲနဲ့အပြီးတုံ့ပြန်ပါ။

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

သက်ဆိုင်တဲ့အခြေအနေများ

  • ရိုးရှင်းသော http server တစ်ခုဖန်တီးပါ

  • Custom Network protocol server ကိုအကောင်အထည်ဖော်ပါ

  • Socket Communication အတွက် backend service အဖြစ်