PHP Network Programming, Socket_cMsg_space နှင့် Socket_sendto တွင်အလွန်အရေးကြီးသောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ သူတို့ကအထူးသဖြင့်ရှုပ်ထွေးသောကွန်ယက် protocols များနှင့်ဆက်ဆံရာတွင်အချက်အလက်ထုတ်လွှင့်မှု၏ထိရောက်မှုကိုတိုးတက်စေရန်အတူတကွလုပ်ဆောင်ကြသည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်ချက်နှစ်ခု၏အခန်းကဏ် on ကိုအသေးစိတ်ဆွေးနွေးရန်နှင့်ဒေတာထုတ်လွှင့်မှုစွမ်းဆောင်နိုင်မှုကိုပိုမိုကောင်းမွန်စေရန်လက်တွေ့ကျသောအပလီကေးရှင်းများတွင်မည်သို့ပူးပေါင်းဆောင်ရွက်ရမည်ကိုအသေးစိတ်ဆွေးနွေးပါမည်။
Socket_cMsg_space သည် data header ရှိထိန်းချုပ်မှုမက်ဆေ့ခ်ျများအတွက်ခွဲဝေထားသောနေရာအရွယ်အစားကိုတွက်ချက်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ Control Message များသည် Metadata ကိုနောက်ထပ် metadata ကိုပိုမိုပေးပို့ရန်အသုံးပြုသည်။ ကွန်ယက်ပရိုဂရမ်များစွာတွင် Data Packet ကိုယ်တိုင်နှင့်မသက်ဆိုင်သောသတင်းအချက်အလက်များကိုထုတ်လွှင့်သောသတင်းအချက်အလက်များကိုထုတ်လွှင့်ရန်ထိန်းချုပ်မှုမက်ဆေ့ခ်ျများကို အသုံးပြု. ကွန်ယက်ဆက်သွယ်ရေးနှင့်လည်းသက်ဆိုင်သည်။
ဤလုပ်ဆောင်မှုသည်များသောအားဖြင့် data ထုတ်လွှင့်မှု၏တိကျမှန်ကန်မှုနှင့်ယုံကြည်စိတ်ချရမှု၏တိကျမှုနှင့်ယုံကြည်စိတ်ချရမှုတိုးတက်စေရန် (ဥပမာ IP address များကဲ့သို့ IP address များ,
function ရှေ့ပြေးပုံစံ:
int socket_cmsg_space(int level, int type);
အဆင့် - မက်ဆေ့ခ်ျထိန်းချုပ်မှုအဆင့်ကိုညွှန်ပြသည်, များသောအားဖြင့် IP သို့မဟုတ် UDP တို့ဖြစ်သည်။
အမျိုးအစား - IP_TTL, IP_PKTINFO ကဲ့သို့သောမက်ဆေ့ခ်ျအမျိုးအစားကိုသတ်မှတ်ပါ။
ဤလုပ်ဆောင်ချက်သည်မက်ဆေ့ခ်ျကိုထိန်းချုပ်ရန်လိုအပ်သော bytes အရေအတွက်ကိုပြန်ပို့သည်။ အမှန်တကယ်စစ်ဆင်ရေးတွင်ဤ bytes အရေအတွက်သည်နောက်ဆုံး packet ၏အရွယ်အစားကိုအကျိုးသက်ရောက်လိမ့်မည်။ ထို့ကြောင့်နောက်ခံ protocol stack သည်ဤအချက်အလက်များကိုမည်သို့ကိုင်တွယ်သည်ကိုဆုံးဖြတ်သည်။
Socket_sendto သည် PHP မှသတ်မှတ်ထားသောလိပ်စာတစ်ခုသို့ဒေတာများကိုပေးပို့ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ၎င်းကို UDP (သို့) IP protocol applications များတွင်အသုံးပြုလေ့ရှိပြီး packets များကိုသတ်မှတ်ထားသော IP address နှင့် port နံပါတ်သို့ပို့နိုင်သည်။
function ရှေ့ပြေးပုံစံ:
int socket_sendto(resource $socket, string $data, int $length, int $flags, string $address, int $port);
$ socket : အချက်အလက်ပေးပို့ရန်လိုအပ်သည့် socket အရင်းအမြစ်။
$ ဒေတာ : ပို့ရန်ဒေတာ။
$ အရှည် : ဒေတာ၏အရှည်။
$ အလံ - အချက်အလက်များပို့ရန်အလံ, များသောအားဖြင့် 0 ။
$ address : destination အိုင်ပီလိပ်စာ။
$ port : destination port ။
ဤလုပ်ဆောင်ချက်သည်အချက်အလက်များကိုကွန်ယက်သို့တိုက်ရိုက်ပို့ပြီး IP address များနှင့် ports များမှတဆင့်အချက်အလက်များကိုပစ်မှတ်စက်သို့ပို့ပေးသည်။ ၎င်းသည်ဒေတာဆက်သွယ်ရေးကိုအကောင်အထည်ဖော်ရန်အခြေခံလုပ်ဆောင်ချက်များအနက်မှတစ်ခုဖြစ်သည်။ အထူးသဖြင့် UDP protocol ကဲ့သို့သောဆက်သွယ်မှုမရှိပါ။
ကွန်ယက်ပရိုဂရမ်းမင်းတွင် function_cmsg_space နှစ်ခု functions socket_cmsg_space နှင့် socket_sendto တို့ကို အတူတကွအသုံးပြုလေ့ရှိသည်။ Socket_cMsg_space သည် Packet ၏လိုအပ်ချက်များကိုဖြည့်ဆည်းပေးနိုင်ရန်အတွက်မက်ဆေ့ခ်ျကိုထိန်းချုပ်ရန်လိုအပ်သော Bytes အရေအတွက်ကိုတွက်ချက်သည်။
ဒေတာထုတ်လွှင့်ခြင်းတွင် Socket_sendto သည် ဒေတာကိုယ်နှိုက်ကိုသာပေးပို့သည်သာမကအချို့သောထိန်းချုပ်မှုအချက်အလက်များကိုထည့်သွင်းရန်လိုအပ်သည် (ဥပမာ, ကွန်ယက်ထုတ်ကုန်များစသဖြင့်) Socket_CMSG_SPACE မှတဆင့်သင့်လျော်သောနေရာကိုဤထိန်းချုပ်မှုအချက်အလက်များအတွက်တွက်ချက်နိုင်ပြီး socket_sendto မှတစ်ဆင့်ပေးပို့နိုင်သည်။
ဤလုပ်ဆောင်ချက်နှစ်ခုပေါင်းစပ်မှုသည်အောက်ပါရှုထောင့်များတွင်ထင်ဟပ်နေသောအချက်အလက်ထုတ်လွှင့်မှု၏ထိရောက်မှုကိုတိုးတက်စေသည်။
မလိုအပ်သော packet segment ကိုလျှော့ချပါ ။ ထိန်းချုပ်မှုဆိုင်ရာသတင်းအချက်အလက်များကိုတွက်ချက်ခြင်းအားဖြင့် data packet ကို packet ကို packet များကြောင့် 0 န်ထုပ် 0 င်မှုနှင့်အချက်အလက်များကို packets များခွဲထားသည့်အခြေအနေကိုလျှော့ချရန်နှင့်အချက်အလက်များကိုပြန်လည်ထုတ်ယူနိုင်သည့်အခြေအနေကိုလျှော့ချရန်နှင့်အချက်အလက်များကိုပြန်လည်ထုတ်ယူခြင်း၏ 0 န်ထုပ် 0 န်ပိုးကိုလျော့နည်းစေနိုင်သည်။
အချက်အလက်တိကျမှုတိုးတက်စေရန်အတွက် နောက်ထပ်ထိန်းချုပ်မှုအချက်အလက်သည်လက်ခံသူအားပိုမိုတိကျသောဒေတာထုတ်လွှင့်မှုအခြေအနေနှင့်အတူရရှိနိုင်ပါသည်။
Network protocols ၏စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်လုပ်ပါ ။ ကွန်ယက် protocols များတွင်မက်ဆေ့ခ်ျများထုတ်လွှင့်ခြင်းကိုထိန်းချုပ်ခြင်းသည်မရှိမဖြစ်လိုအပ်သည်။ ကျိုးကြောင်းဆီလျော်သောတွက်ချက်မှုနေရာနှင့်အချက်အလက်များကိုထိရောက်စွာပေးပို့ခြင်းသည် protocol ၏စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။
Socket_cMsg_space နှင့် Socket_sendto ကို Controls Controls Controls Controls နှင့်ချိတ်ဆက်ရန် Socket_cMsg_space နှင့် Socket_sendto ကိုမည်သို့အသုံးပြုရမည်နည်း။
<?php
// aUDP socket
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
if ($socket === false) {
echo "Socket creation failed: " . socket_strerror(socket_last_error()) . "\n";
exit;
}
// မက်ဆေ့ခ်ျများကိုထိန်းချုပ်ရန်လိုအပ်သောနေရာကိုတွက်ချက်ပါ
$control_message_space = socket_cmsg_space(IPPROTO_IP, IP_TTL);
echo "Control message space required: $control_message_space bytes\n";
// ထိန်းချုပ်မှုမက်ဆေ့ခ်ျကိုတက် setting(ဥပမာအားဖြင့်,TTL)
$ttl = 64;
socket_sendto($socket, "Hello, World!", strlen("Hello, World!"), 0, '192.168.1.1', 12345);
// ရုပ်သိမ်းခြင်းsocket
socket_close($socket);
?>
ဤဥပမာတွင် UDP socket ကိုပထမဆုံးဖန်တီးထားပြီးထိန်းချုပ်မှုအချက်အလက်များကိုပေးပို့ရန်လိုအပ်သောနေရာကို Socket_CMsg_space မှတဆင့်တွက်ချက်သည်။ ထို့နောက် socket_sendto သုံး. destination လိပ်စာသို့ပို့သည်။
Socket_cMsg_space နှင့် Socket_sendto သည် PHP တွင်အလွန်အသုံးဝင်သော network programming function နှစ်ခုဖြစ်သည်။ နှစ်ခု၏ညှိနှိုင်းအကျိုးသက်ရောက်မှုသည်ဒေတာထုတ်လွှင့်မှု၏ထိရောက်မှုကိုတိုးတက်စေရုံသာမက Network ဆက်သွယ်ရေးတွင်အချက်အလက်များကိုပိုမိုတိကျပြီးယုံကြည်စိတ်ချရသောကူးစက်မှုကိုသေချာစေသည်။ လက်တွေ့ကျသောအပလီကေးရှင်းများတွင်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမှန်ကန်စွာအသုံးပြုခြင်းသည်အထူးသဖြင့်မက်ဆေ့ခ်ျများထိန်းချုပ်ရန်လိုအပ်သောကွန်ယက် protocols များကိုကိုင်တွယ်သည့်အခါစနစ်၏စွမ်းဆောင်ရည်ကိုတိုးတက်စေလိမ့်မည်။