PHP, Socket_Accept () တွင် client connection များကိုလက်ခံရန်အသုံးပြုသော function တစ်ခုဖြစ်ပြီး Socket-based network compacen ည့်သည်များတွင်အသုံးပြုလေ့ရှိသည်။ ဤဆောင်းပါးသည် Socient_Accept ကိုအသုံးပြုရမည် () သည် အခြေခံဖြင့် intranet ဆက်သွယ်ရေး 0 န်ဆောင်မှုကိုနားလည်ရန်အတွက်ရိုးရှင်းသော intranet ဆက်သွယ်ရေး 0 န်ဆောင်မှုကိုတည်ဆောက်ရန်အခြား socket functions များနှင့်ပေါင်းစပ်ရမည်။
Socket_accept () socket connection တောင်းဆိုမှုကိုလက်ခံရန်အသုံးပြုသည်။ ၎င်းသည် client connection အတွက် server ဆက်သွယ်မှုအတွက် server ဆက်သွယ်မှုအတွက် server ဆက်သွယ်မှုကိုနားထောင်ပြီးနောက်၎င်းသည် client connection အသစ်ကို 0 င်ရောက်ပြီး client convice connection ကိုလက်ခံရန်ဤလုပ်ဆောင်မှုကိုလက်ခံလေ့ရှိသည်။
အောက်ဖော်ပြပါနမူနာကုဒ်သည် Socket_Accept ကို အသုံးပြုရမည်,
<?php
// ဖန်တီးTCP Socket
$server = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!$server) {
die("无法ဖန်တီးsocket: " . socket_strerror(socket_last_error()) . "\n");
}
// ချည်နေှာင်IPနှင့် ports,အများအားဖြင့် intranet အတွက်အသုံးပြုခဲ့သည်IPနမူနာ:192.168.1.100,သငေ်္ဘာဆိပ်ကမ်း9000
$bindResult = socket_bind($server, '192.168.1.100', 9000);
if (!$bindResult) {
die("无法ချည်နေှာင်socket: " . socket_strerror(socket_last_error($server)) . "\n");
}
// စောင့်ကြည့်လေ့လာရေးစတင်ပါ,စောင့်ဆိုင်းဆက်သွယ်မှုအများဆုံးအရေအတွက်ကဖြစ်ပါတယ်5
socket_listen($server, 5);
echo "ဆာဗာစတင်သည်,နားထောင်ခြင်း...\n";
while (true) {
// client connection ကိုစောင့်ပါ
$client = socket_accept($server);
if (!$client) {
echo "ဆက်သွယ်မှုလက်ခံမှုမအောင်မြင်ပါ: " . socket_strerror(socket_last_error($server)) . "\n";
continue;
}
// client data ကိုဖတ်ပါ,အများဆုံးဖတ်ပါ1024ဒရယ်
$input = socket_read($client, 1024);
$input = trim($input);
echo "client ကိုဒေတာကိုလက်ခံရရှိခဲ့သည်:{$input}\n";
// ရိုးရှင်းသောအပြောင်းအလဲနဲ့:Client Message သို့ပြန်ကြားပါ
$response = "ဆာဗာကိုလက်ခံရရှိခဲ့သည်: " . $input . "\n";
socket_write($client, $response, strlen($response));
// client ကိုဆက်သွယ်မှုကိုပိတ်ပါ
socket_close($client);
}
// ဆာဗာကိုပိတ်ပါsocket(များသောအားဖြင့်ကုဒ်ကိုဒီမှာကွပ်မျက်ခံရမှာမဟုတ်ဘူး)
socket_close($server);
သင်၏ server_bind function ရှိ IP address ကိုသင်၏ဆာဗာ၏ Intranet IP သို့ကုဒ်နံပါတ်ရှိ Modify ။
script ကိုဖွင့်ပြီးနောက်ဆာဗာသည် port 9000 ကိုနားထောင်ပြီး 0 န်ဆောင်မှုခံယူသူကိုချိတ်ဆက်ရန်စောင့်ဆိုင်းလာသည်။
client သည်ဆာဗာ IP နှင့် port ကို Telnet သို့မဟုတ် Custom Socket Progress အစီအစဉ်များမှတဆင့်ချိတ်ဆက်နိုင်သည်။
ဆာဗာသည် 0 န်ဆောင်မှုခံယူသူမက်ဆေ့ခ်ျကိုလက်ခံရရှိပြီးနောက်အတည်ပြုအချက်အလက်ကိုပြန်ပို့လိမ့်မည်။
client သည်ရိုးရှင်းသော PHP script ဖြစ်သည်ဟုယူဆပါ -
<?php
$client = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!$client) {
die("ဖောက်သည်socketဖန်တီး失败: " . socket_strerror(socket_last_error()) . "\n");
}
// ဆာဗာကိုဆက်သွယ်ပါ(ကျေးဇူးပြု. ဆာဗာကွန်ယက်ဖြင့်အစားထိုးပါIP)
if (!socket_connect($client, '192.168.1.100', 9000)) {
die("ဆာဗာကိုချိတ်ဆက်ရန်မအောင်မြင်ပါ: " . socket_strerror(socket_last_error($client)) . "\n");
}
// ဒေတာပို့ပါ
$message = "Hello from client";
socket_write($client, $message, strlen($message));
// ဆာဗာပြန်ကြားချက်ကိုဖတ်ပါ
$response = socket_read($client, 1024);
echo "ဆာဗာပြန်ကြားချက်: " . $response . "\n";
socket_close($client);
ဒီ client script ကို run ပြီးတဲ့အခါဆာဗာကိုလက်ခံရရှိတဲ့မက်ဆေ့ခ်ျကိုပုံနှိပ်ထုတ်ဝေလိမ့်မယ်။
ပရိုဂရမ်တွင် URL တစ်ခုကိုအသုံးပြုရန်လိုအပ်ပါက ကျေးဇူးပြု. M66.net ဖြင့် domain name ကိုအစားထိုးပါ။ ဥပမာအားဖြင့်: