လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP Socket_Accept_Accept () နှင့် socket_create အကြားအခြေခံညှိနှိုင်းမှု ()

PHP Socket_Accept_Accept () နှင့် socket_create အကြားအခြေခံညှိနှိုင်းမှု ()

M66 2025-05-18

PHP Network Programming, Socket_Ceate () နှင့် Socket_aceate ()) နှင့် Socket_aceCception () သည်အလွန်အရေးကြီးသောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ အထူးသဖြင့် TCP သို့မဟုတ် UDP အပေါ် အခြေခံ. server-side applications များတည်ဆောက်ရာတွင်ဖြစ်သည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအခြေခံအားဖြင့်အခြေခံလုပ်ဆောင်မှုများနှင့်အသုံးပြုမှုကိုအသေးစိတ်မိတ်ဆက်ပေးပြီး၎င်းတို့ကိုရိုးရှင်းသော server-side program ကိုအကောင်အထည်ဖော်ရန်မည်သို့အတူတကွအသုံးပြုနိုင်သည်ကိုပြပါလိမ့်မည်။

1 ။ socket_create ၏ function ကိုနှင့်အသုံးပြုမှု ()

ကွန်ယက်ဆက်သွယ်ရေးအတွက် Socket Socket Socket Socket Society ကိုဖန်တီးရန် Socket_create () ကိုအသုံးပြုသည်။ ၎င်းသည် Network Programming ဖြစ်သည်။ function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -

 resource socket_create ( int $domain , int $type , int $protocol )
  • $ ဒိုမိန်း - AF_inT (IPv4), AF_int6 (IPv6 (IPv6) နှင့် af_int6 (IPv6) နှင့် AF_int6 (IPv6) နှင့် AF_int6 (IPv6) နှင့် AF_int6 (IPv6) နှင့် AF_int6 (IPv6) နှင့် AF_int6 (IPv6) နှင့် AF_int6 (IPv6) နှင့် AF_int6 (IPv6) နှင့် af_int6 (IPv6) နှင့် AF_Ant (IPv6) ဖြစ်သည်။

  • $ type : Socket အမျိုးအစားကိုသတ်မှတ်ပါ။ ဘုံအမျိုးအစားများသည် Sock_Stream (TCP streaming connection), sock_dgram (UDP Datagram) ဖြစ်သည်။

  • $ protocol : တိကျသော protocol ကိုသတ်မှတ်သည်။ များသောအားဖြင့် TCP သည် Sol_TCP နှင့် UDP ကို အသုံးပြုသည်။

ဖန်တီးမှုအောင်မြင်သောအခါ societ အရင်းအမြစ်တစ်ခုပြန်ပို့ပြီးပျက်ကွက်သည့်အခါ မှားယွင်းသော နောက်သို့ပြန်ပို့သည်။

ဥပမာ -

 $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    die("ဖန်တီး socket ဆုံးရှုံး: " . socket_strerror(socket_last_error()));
}

2 ။ socket_accept ၏အခန်းကဏ် and နှင့်အသုံးပြုမှု ()

Socket_Accept () သည် socket ရှိ client connection များကို socket ရှိ computer connection များကိုလက်ခံရန်အသုံးပြုသည်။ ၎င်း၏ function ရှေ့ပြေးပုံစံဖြစ်ပါတယ်:

 resource socket_accept ( resource $socket )
  • Parameter $ socket သည် socket_create () ဖြင့်ဖန်တီးထားသော socket ကိုဖန်တီးပြီးနားထောင်သည်။

  • ခေါ်ဆိုမှုအပြီးတွင် client connection တောင်းဆိုမှုတစ်ခုရှိပါက client နှင့်ဆက်သွယ်ရန် Societ Reface အသစ်တစ်ခုကိုပြန်ပို့သည်။ အကယ်. မအောင်မြင်ပါက မှားယွင်းစွာ ပြန်လာသည်။

3 ။ socket_create () နှင့် socket_accept အကြားပူးပေါင်းဆောင်ရွက်မှု ()

ဆာဗာကို 0 န်ဆောင်မှုခံယူသူများ၏တောင်းဆိုမှုများကိုနားထောင်ရန်နှင့်ဆက်သွယ်မှုများကိုလက်ခံရရှိရန် 0 န်ဆောင်မှုခံယူရန်ပုံမှန်လုပ်ဆောင်မှုမှာအောက်ပါအတိုင်းဖြစ်သည် -

  1. socket တစ်ခုဖန်တီးပါ
    Socket_create () ကို သုံး. Socket တစ်ခုကိုဖန်တီးပါ။

  2. Bind လိပ်စာနှင့်ဆိပ်ကမ်း <br> <br> ဒေသခံ IP နှင့် port ကို socket ကိုချိတ်ဆွဲရန် Socket_bind () ကိုသုံးပါ။

  3. Socket ကိုနားထောင်ပါ
    socket_listen () ကိုအသုံးပြုပါ။

  4. ဆက်သွယ်ရေးကိုလက်ခံပါ client ကိုပိတ်ဆို့ရန်နှင့်အောင်မြင်မှုအပြီး socket အသစ်ကိုပြန်ပို့ရန် socket_accept () ကို အသုံးပြုပါ။

  5. ဒေတာကိုဖတ်ပြီးရေးပါ socket အသစ်တစ်ခုမှတစ်ဆင့် client နှင့်ဆက်သွယ်ခြင်း။

  6. ဆက်သွယ်မှုကိုပိတ်ပါ ဆက်သွယ်ရေးပြီးဆုံးပြီးနောက် socket ကိုပိတ်ပါ။

ဤတွင်ဤလုပ်ဆောင်ချက်နှစ်ခုကို အသုံးပြု. ရိုးရှင်းသော TCP ဆာဗာကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုပြသသောပြည့်စုံသောဥပမာတစ်ခုမှာ -

 <?php
// ဖန်တီး TCP socket
$server = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($server === false) {
    die("ဖန်တီး socket ဆုံးရှုံး: " . socket_strerror(socket_last_error()));
}

// ချည်နေှာင် IP နှင့် ports
if (!socket_bind($server, "0.0.0.0", 8080)) {
    die("ချည်နေှာင် socket ဆုံးရှုံး: " . socket_strerror(socket_last_error($server)));
}

// စောင့်ကြည့်လေ့လာရေးစတင်ပါ,အများဆုံးခွင့်ပြု5ဆက်သွယ်မှုများအတွက်တန်းစီ
if (!socket_listen($server, 5)) {
    die("监听ဆုံးရှုံး: " . socket_strerror(socket_last_error($server)));
}

echo "ဆာဗာစတင်သည်,ဆက်သွယ်မှုကိုစောင့်ဆိုင်း...\n";

while (true) {
    // client connection ကိုပိတ်ဆို့ခြင်းနှင့်စောင့်ဆိုင်းခြင်း
    $client = socket_accept($server);
    if ($client === false) {
        echo "接收连接ဆုံးရှုံး: " . socket_strerror(socket_last_error($server)) . "\n";
        continue;
    }

    // client data ကိုဖတ်ပါ
    $input = socket_read($client, 1024);
    echo "client ကိုဒေတာကိုလက်ခံရရှိခဲ့သည်: $input\n";

    // client ကိုတစ် ဦး တုံ့ပြန်မှုပေးပို့ပါ
    $response = "Hello from m66.net server!";
    socket_write($client, $response, strlen($response));

    // Client Convice Connection
    socket_close($client);
}

socket_close($server);
?>

ဒီဥပမာမှာ -

  • ဆာဗာသည်ဒေသဆိုင်ရာအိုင်ပီလိပ်စာအားလုံး၏ port 8080 ကို port 8080 သို့ချည်နှောင်ထားသည်။

  • client connection တောင်းဆိုမှုများကိုလက်ခံရရှိရန် Socket_Accept () ကို သုံး. အောင်မြင်မှုအပြီးတွင် socket အသစ်တစ်ခုကိုပြန်ပို့ပါ။

  • client မှပေးပို့သောအချက်အလက်များကိုဖတ်ပြီးရိုးရှင်းသောတုန့်ပြန်မှုကိုပြန်ပို့ပါ။

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

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

  • Socket_create () ကို အခြေခံဆက်သွယ်ရေးလမ်းကြောင်းကိုဖန်တီးရန်အသုံးပြုသည်။

  • socket_accept () client connections များကို client connections များနှင့် client နှင့်အပြန်အလှန်ဆက်သွယ်သော Sockets များကိုပြန်ပို့ရန်ဆာဗာကအသုံးပြုသည်။

  • နှစ်ခုပေါင်းစပ်မှုသည် TCP server-side programming ၏အခြေခံဖြစ်သည်။

  • အမှန်တကယ် application များအရအမှားအယွင်းများ, တစ်ပြိုင်နက်တည်းဆက်သွယ်မှုများနှင့်အချက်အလက်ပို့ခြင်းဆိုင်ရာအသေးစိတ်အချက်အလက်များလည်းလိုအပ်သည်။

ဤဆောင်းပါးသည် PHP တွင် Socket-based network 0 န်ဆောင်မှုများကိုအလွယ်တကူတည်ဆောက်ရန် Socket_create () socket_acce_acce_acception_acception_acception ()) ကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်အသုံးပြုရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။