ထိရောက်သောကွန်ယက်ဆက်သွယ်ရေးလျှောက်လွှာများကိုတည်ဆောက်ရာတွင် PHP သည် developer များဤရည်မှန်းချက်အောင်မြင်ရန်ကူညီရန်အသုံးဝင်သောအခြေခံလုပ်ဆောင်မှုများကိုထောက်ပံ့ပေးသည်။ Socket_create နှင့် Socket_cmsg_space သည် PHP တွင်ထိရောက်သောဆက်သွယ်ရေးလမ်းကြောင်းများကို ဖန်တီး. စီမံခန့်ခွဲရန်ခွင့်ပြုသည့်အလွန်အစွမ်းထက်သောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည်ထိရောက်သောဆက်သွယ်ရေးစနစ်တည်ဆောက်ရန်ဤလုပ်ငန်းဆောင်တာနှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ဖော်ပြထားသည်။
Socket_create function သည် PHP ရှိ function တစ်ခုဖြစ်ပြီး socket အသစ်တစ်ခုကိုဖန်တီးသည်။ ၎င်းသည် Protocol မိသားစု (IPv4 သို့မဟုတ် IPv6 ကဲ့သို့သော IPv4 သို့မဟုတ် IPv6), socket type (ဥပမာ socket sockets, datagram sockets စသည်) နှင့် protocol type နှင့် protocol type တို့ပါ 0 င်သည်။ ဤလုပ်ဆောင်မှုသည် PHP တွင်ကွန်ယက်ဆက်သွယ်မှုကိုစတင်အကောင်အထည်ဖော်ရန်ခွင့်ပြုသည်။
socket_create(int $domain, int $type, int $protocol): resource
$ ဒိုမိန်း - သာမန် sockets မိသားစု, Protocol မိသားစု, ဘုံများမှာ AF_inT (IPv4) နှင့် AF_inT6 (IPV6) တို့ပါဝင်သည်။
$ type အမျိုးအစား - Socke_stream (stream socket) သို့မဟုတ် sock_dgram (Datagram Socket) ဖြစ်နိုင်သည့် socket အမျိုးအစား။
$ protocol : များသောအားဖြင့် 0 အဖြစ်သတ်မှတ်သည်။ ပုံမှန် protocol ကိုညွှန်ပြသည်။
Socket_cMsg_space function သည်အတော်အတန်အသုံးမပြုနိုင်သော function ဖြစ်သည်။ ၎င်း၏အဓိကလုပ်ဆောင်ချက်မှာသတ်မှတ်ထားသောဒေတာအရွယ်အစားအတွက်လိုအပ်သော Control Message နေရာကိုတွက်ချက်ရန်ဖြစ်သည်။ Control Message များသည်များသောအားဖြင့် Metadata ကိုများသောအားဖြင့် Metadata သို့ပို့ရန်လိုအပ်သည့်အရာများသို့ပို့ခြင်းအတွက် (ပို့မည့်အချိန်မှာအမှတ်အသားများ, timestamps စသည်များစသည်တို့) ပို့ရန်လိုအပ်သည်။
socket_cmsg_space(int $level, int $type): int
$ အဆင့် - ပုံမှန်အားဖြင့် sol_socket ကိုသုံးပြီးမက်ဆေ့ခ်ျများကိုထိန်းချုပ်သော protocol layer ။
$ type - မက်ဆေ့ခ်ျအမျိုးအစားကိုထိန်းချုပ်သည်, များသောအားဖြင့် scm_timestamp သို့မဟုတ် scm_crecrententials စသဖြင့်ထိန်းချုပ်သည်။
ဤလုပ်ဆောင်မှုသည်များသောအားဖြင့်အချက်အလက်များကိုမပို့မီအချက်အလက်များကိုမပို့မီလုံလောက်သောကြားခံနေရာချိန်းရန်သေချာစေရန်အသုံးပြုသည်။
ဤလုပ်ဆောင်ချက်နှစ်ခုကိုပေါင်းစပ်ခြင်းအားဖြင့်သင်သည်အချက်အလက်များကိုထုတ်လွှင့်နိုင်သည့်ထိရောက်သောဆက်သွယ်ရေးလမ်းကြောင်းတစ်ခုကိုဖန်တီးနိုင်သည်။
ပထမ ဦး စွာ Network Socket ကိုဖန်တီးရန် Socket_create Socket တစ်ခုဖန်တီးရန်, protocol နှင့်ဆက်သွယ်ရေးအမျိုးအစားကိုသတ်မှတ်ရန်။
$socket = socket_create(AF_INET, SOCK_STREAM, 0);
if ($socket === false) {
echo "Socket creation failed: " . socket_strerror(socket_last_error()) . "\n";
} else {
echo "Socket created successfully.\n";
}
ထို့နောက် control message များပေးပို့ရန်လိုအပ်သည့်နေရာကိုတွက်ချက်ရန် Socket_CMSG_SPACE ကို အသုံးပြုပါ။ ဤအချက်သည်အချက်အလက်များကိုပေးပို့သည့်အခါသင်ကြားခံထက်မပိုပါ။
$space = socket_cmsg_space(SOL_SOCKET, SCM_TIMESTAMP);
echo "Control message space required: $space bytes.\n";
Socket နှင့် Control Message နေရာအဆင်သင့်ဖြစ်ပြီဆိုလျှင်ဒေတာများကိုပေးပို့ရန် Socket_send သို့မဟုတ် Socket_sendto ကဲ့သို့သောလုပ်ဆောင်မှုများကိုသင်အသုံးပြုနိုင်သည်။ အချို့သော metadata ကိုထိန်းချုပ်မှုမက်ဆေ့ခ်ျများမှတဆင့်ကူးစက်နိုင်သည်။
$msg = "Hello, this is a test message!";
$controlMsg = pack('L', time()); // current ကို current control information အဖြစ်
socket_send($socket, $msg, strlen($msg), 0);
ဆက်သွယ်ရေးပြီးဆုံးပြီးနောက် SECMESS ကိုစနစ်အရင်းအမြစ်များကိုလွှတ်ရန် Socket ကိုပိတ်ရန်သတိရပါ။
socket_close($socket);
echo "Socket closed.\n";
Socket_create နှင့် Socket_cmsg_space ကိုပေါင်းစပ်ပြီး PHP တွင်ထိရောက်သောဆက်သွယ်ရေးလမ်းကြောင်းများကိုသင်ဖန်တီးနိုင်ပြီးပိုမိုရှုပ်ထွေးသောဆက်သွယ်ရေး protocols များကိုပြုလုပ်နိုင်သည်။ ဤနည်းအားဖြင့်ဒေတာများကိုသာကူးစက်နိုင်ရုံသာမကစနစ်၏လုပ်ဆောင်မှုနှင့်ပြောင်းလွယ်ပြင်လွယ်တိုးတက်စေရန်အချိန်တံဆိပ်ခေါင်းများ, အသုံးပြုသူဖော်ထုတ်ခြင်းစသည်တို့နှင့်လည်းလိုက်ပါနိုင်သည်။