Network programming တွင် PHP သည် web applications များကိုတီထွင်ရန်သာမက TCP ဆာဗာကဲ့သို့သောအဆင့်နိမ့်ကွန်ယက်ဆက်သွယ်ရေးအစီအစဉ်များကိုဖန်တီးရန်လည်းအသုံးပြုနိုင်သည်။ company connections များကိုလက်ခံရန် Socket_Accept () သည် PHP ရှိအရေးကြီးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည်သင့်အားရိုးရှင်းသော TCP server ကိုတစ်ဆင့်ပြီးတစ်ဆင့်တည်ဆောက်ရန်နှင့်အဓိကအချက်များကိုရှင်းပြပါ။
Socket_Accept () သည် socket တွင် connection socket တွင်ဆက်သွယ်မှုတောင်းဆိုမှုများကိုလက်ခံရရှိရန်ဆာဗာပေါ်ရှိ PHP Socket extension တွင် function တစ်ခုဖြစ်သည်။ Client သည် connection တစ်ခုတောင်းဆိုခြင်းသည် connection တစ်ခုအတွက်တောင်းဆိုခြင်းသည်အဓိကနားထောင်နေသော socket ထက် client နှင့်ဆက်သွယ်ရန်အသုံးပြုသော socient_Accept () သည် client နှင့်ဆက်သွယ်ရန်အတွက် socket letance အသစ်တစ်ခုကိုပြန်ပို့သည်။
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
die("socket_create() ဆုံးရှုံး: " . socket_strerror(socket_last_error()) . "\n");
}
ဤကုဒ်နံပါတ်သည် IPv4 ( AF_AT4 ) ၏ TCP Socket ( Sock_Stream ) ကိုဖန်တီးသည်။ Protocol type သည် TCP ( Sol_tcp ) ဖြစ်သည်။
if (!socket_bind($socket, '0.0.0.0', 12345)) {
die("socket_bind() ဆုံးရှုံး: " . socket_strerror(socket_last_error($socket)) . "\n");
}
ဤအဆင့်သည် 12345 ကဲ့သို့သောဒေသဆိုင်ရာ IP နှင့်ဆိပ်ကမ်းသို့ Socket ကိုချည်ထားသည်။
if (!socket_listen($socket, 5)) {
die("socket_listen() ဆုံးရှုံး: " . socket_strerror(socket_last_error($socket)) . "\n");
}
အဝင်ဆက်သွယ်မှုများကိုစတင်နားထောင်ပါ။ 5 သည် အများဆုံးခွင့်ပြုထားသောစောင့်ဆိုင်းထားသောဆက်သွယ်မှုတန်းစီအရှည်ကိုညွှန်ပြသည်။
while (true) {
echo "client connection ကိုစောင့်ဆိုင်း...\n";
$clientSocket = socket_accept($socket);
if ($clientSocket === false) {
echo "socket_accept() ဆုံးရှုံး: " . socket_strerror(socket_last_error($socket)) . "\n";
continue;
}
$welcomeMsg = "မှကြိုဆိုပါသည် m66.net ၏ PHP TCP ဆာဆာ!\n";
socket_write($clientSocket, $welcomeMsg, strlen($welcomeMsg));
// client ကိုသတင်းအချက်အလက်များကိုဖတ်ပါ
$input = socket_read($clientSocket, 1024);
echo "တစ် ဦး client ကိုမက်ဆေ့ခ်ျကိုလက်ခံရရှိခဲ့သည်: " . $input;
// client ကိုတုံ့ပြန်
$response = "မင်းဒါကိုပို့လိုက်တယ်: " . trim($input) . "\n";
socket_write($clientSocket, $response, strlen($response));
// Client Convice Connection
socket_close($clientSocket);
}
အထက်ပါကုဒ်တွင် client သည် client ကိုချိတ်ဆက်ရန်အတိုင်းသက်ဆိုင်လိမ့်မည်။ ဆက်သွယ်မှုကိုစတင်တည်ထောင်ပြီးသည်နှင့် 0 န်ဆောင်မှုပေးသည့်မက်ဆေ့ခ်ျကိုပေးပို့ပြီး client input ကိုဖတ်ပါ, ၎င်းသည်ပြန်လာသည်။
အထက်ဖော်ပြပါကုဒ်သည်အဆုံးမဲ့ကွင်းဆက်ဆာဗာတစ်ခုဖြစ်သော်လည်းအမှန်တကယ်အသုံးပြုမှုတွင် interfression ယန္တရားသို့မဟုတ် signal processing ကိုထည့်သွင်းသင့်သည်။ ဆာဗာကိုပိတ်ရန်ကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
socket_close($socket);
ဤ TCP ဆာဗာကိုစမ်းသပ်ရန် Telnet ကို သုံးနိုင်သည်။
telnet m66.net 12345
ဆက်သွယ်မှုအောင်မြင်ပါကဆာဗာမှပြန်လာသောကြိုဆိုသောသတင်းစကားကိုသင်တွေ့လိမ့်မည်။
PHP ၏ Socket extension ကိုပုံမှန်အားဖြင့်ဖွင့်ထားခြင်းမရှိပါ။ Php.ini တွင် Socket များကို ဖွင့်ထားပါ။
script ကို run ဖို့ command line ကိုသုံးပါ။ Web ပတ်ဝန်းကျင်သည်ထိုကဲ့သို့သောကြာရှည်စွာချိတ်ဆက်ထားသော 0 န်ဆောင်မှုများကိုလုပ်ကိုင်ရန်မသင့်တော်ပါ။
အမှန်တကယ်ဖြန့်ကျက်နေစဉ်အတွင်းခြွင်းချက်ကိုင်တွယ်ခြင်း, သစ်ထုတ်လုပ်ခြင်းနှင့် Multi-processing processing processing processing processing ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုထည့်သွင်းသင့်သည်။
ဤဆောင်းပါးမှ PHP Socket_Acception () function ကို အသုံးပြု. ရိုးရှင်းသော TCP server တစ်ခုကိုမည်သို့ဖန်တီးရမည်ကိုသင်လေ့လာသင်ယူခဲ့သည်။ PHP သည် 0 န်ဆောင်မှုများအတွက်နှစ်သက်သောဘာသာစကားမဟုတ်သော်လည်း၎င်းသည်အခြေခံလိုအပ်ချက်များနှင့်ကိုက်ညီရန်လိုအပ်သောကိရိယာများကိုလည်းထောက်ပံ့ပေးသည်။ ဤဆာဗာဥပမာသည် PHP ၏အားကောင်းသောပြောင်းလွယ်ပြင်လွယ်မှုကိုပြသသည်။