လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Socket_Accept () 0 န်ဆောင်မှုကို Linux နောက်ခံ daemon အဖြစ်မှတ်ပုံတင်နည်း

Socket_Accept () 0 န်ဆောင်မှုကို Linux နောက်ခံ daemon အဖြစ်မှတ်ပုံတင်နည်း

M66 2025-05-28

Socket_Accept () PHP ကို ​​အသုံးပြု. ပရိုဂရမ်ကွန်ယက်များအပေါ်ကွန်ပျူတာကွန်ယက်များကိုကိုင်တွယ်ရန် socket connection များကိုကိုင်တွယ်ရန်အသုံးများသောနည်းလမ်းဖြစ်သည်။ သို့သော်၎င်းတွင်၎င်းသည် daemon အဖြစ်အလိုအလျောက်ဖွင့ ်. အလိုအလျောက်ဖွင့ ်. မရပါ။ ဤဆောင်းပါးသည် Php screen_Acception ပါ 0 င်သည့် Socket_Accept () ကို Linux နောက်ခံ daemon ကိုမည်သို့မှတ်ပုံတင်ရမည်ကိုမိတ်ဆက်ပေးနိုင်သည်။

1 ။ သင်၏ PHP Socket Service Script ကိုပြင်ဆင်ပါ

ပထမ ဦး စွာအခြေခံ Socket Server-side script တစ်ခုလိုအပ်ပါတယ်။ TCP ဆာဗာအတွက်ရိုးရှင်းသော PHP ဥပမာ -

 <?php

$host = '0.0.0.0';
$port = 12345;

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, $host, $port);
socket_listen($socket);

echo "Server started on {$host}:{$port}\n";

while (true) {
    $client = @socket_accept($socket);
    if ($client === false) {
        usleep(100000); // ရေှာင်ရှားCPUအလွန်မြင့်မားသောထေို
        continue;
    }

    $message = "Hello from server at m66.net\n";
    socket_write($client, $message, strlen($message));
    socket_close($client);
}

socket_close($socket);

2 ။ Daemon Starter ကိုဖန်တီးပါ

၎င်းကို daemon Running သို့ဖွင့်ရန်, သင်သည်ကိုယ်ပိုင် "terminal မှထွက်ရန်" လိုအပ်သည်။ ဘုံနည်းလမ်းမှာ Daemon Mode ကိုအကောင်အထည်ဖော်ရန် PHP ကိုအသုံးပြုရန်ဖြစ်သည်

Daemons ကိုမှတ်ပုံတင်ရန် SystemD ကိုသုံးပါ

  1. PHP scripts ကိုသိမ်းပါ သင်၏ script ကို /usr/ local/bin/php_php_php_php_php_php_php_php အမည်ရှိသည်ဟုယူဆသည်။

 chmod +x /usr/local/bin/php_socket_server.php
  1. System Service ယူနစ်ဖိုင်ကိုဖန်တီးပါ အောက်ပါအကြောင်းအရာများကို /etc/systemd/system/php-socket.Service သို့ထည့်ပါ။

 [Unit]
Description=PHP Socket Server
After=network.target

[Service]
ExecStart=/usr/bin/php /usr/local/bin/php_socket_server.php
Restart=always
RestartSec=5
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=php-socket-server
User=www-data
Group=www-data

[Install]
WantedBy=multi-user.target
  1. ဝန်ဆောင်မှုကို Enable လုပ်ပါ

 sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable php-socket.service
sudo systemctl start php-socket.service

ဤနည်းအားဖြင့် system starts စတင်သောအခါသင်၏ socient socient 0 န်ဆောင်မှုသည်အလိုအလျောက်ပြန်လည်စတင်လိမ့်မည်။

3 ။ daemon ၏ပြေးအခြေအနေကိုစစ်ဆေးပါ

အောက်ပါ command ကို သုံး. 0 န်ဆောင်မှုအခြေအနေကိုစစ်ဆေးနိုင်သည်။

 sudo systemctl status php-socket.service

မှတ်တမ်းအချက်အလက်များကိုကြည့်ရန်

 journalctl -u php-socket.service -f

4 ။ ဖုတ်ကောင်ဖြစ်စဉ်များနှင့်ယိုစိမ့်ခြင်းမှအရင်းအမြစ်များကိုတားဆီးပါ

ရှည်လျားသောနောက်ခံ Socket Services တွင်ကျိုးကြောင်းဆီလျော်ခြွင်းချက်ကိုင်တွယ်ခြင်းသည်အလွန်အရေးကြီးသည်။ FOLCH_ACCLT အတွက်သင့်လျော်သောနှောင့် နှေး မှုများပြုလုပ်ရန်နှင့်မကြာခဏအမှားများအတွက်မှတ်တမ်းကိုစောင့်ကြည့်ရန်အကြံပြုသည်။

5 ။ ဒိုမိန်းအမည်ကိုနားထောင်ခြင်းနှင့် proxy (optional)

M66.net ကဲ့သို့သောဒိုမိန်းအမည်များမှတဆင့်ပြင်ပကမ္ဘာသို့ 0 န်ဆောင်မှုပေးလိုပါက Nginx သို့မဟုတ်အခြားပြောင်းပြန် proxy software များနှင့်ပေါင်းစပ်ထားသော 0 န်ဆောင်မှုသို့ port ကိုမြေပုံဆွဲနိုင်သည်။ ဥပမာအားဖြင့်: