PHP ပရိုဂရမ်တွင် stream_socket_server လုပ်ခြင်းသည် stream-based server socket တစ်ခုဖန်တီးရန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည်ပရိုဂရမ်သည်ကွန်ယက်ဆိပ်ကမ်းတစ်ခုအတွက်နားထောင်ရန်ခွင့်ပြုသည်, client ကိုဆက်သွယ်ရန်နှင့်ထိုဆက်သွယ်မှုများကိုလုပ်ဆောင်ရန်စောင့်ဆိုင်းပါ။ Sock_Create နှင့် Sock_bind ကဲ့သို့သောရိုးရာလုပ်ငန်းဆောင်တာများနှင့်နှိုင်းယှဉ်ပါက stream_socket_server သည် ကွန်ရက် 0 န်ဆောင်မှုများ၏ဆောက်လုပ်ရေးလုပ်ငန်းစဉ်ကိုရိုးရှင်းစေခြင်း,
Steam_socket_Server ဆိုသည်မှာ PHP တွင်ပါ 0 င်သော function တစ်ခုဖြစ်သည်။ ၎င်းသည် client connection များကိုလက်ခံရန်အသုံးပြုနိုင်သော stream အရင်းအမြစ်ကိုပြန်လည်ရောက်ရှိစေသည်။ ဤလုပ်ဆောင်မှုသည် TCP, UDP နှင့် UNIX ဒိုမိန်း sockets အပါအ 0 င် protocols အမျိုးမျိုးကိုထောက်ပံ့သည်။
$server = stream_socket_server("tcp://gitbox.net:8080", $errno, $errstr);
if (!$server) {
echo "ဆာဗာတစ်ခုကို ဖန်တီး. မရပါ: $errstr ($errno)\n";
} else {
echo "ဆာဗာဖန်တီးမှုကိုအောင်မြင်စွာ,ဆိပ်ကမ်းကိုနားထောင်ခြင်း8080\n";
}
လိပ်စာ 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 အဖြစ်