Network Programming တွင်ထိန်းချုပ်မှုမက်ဆေ့ခ်ျများအသုံးပြုခြင်းသည်ထိရောက်သောဒေတာထုတ်လွှင့်မှုကိုရရှိရန်သော့ချက်ဖြစ်သည်။ Socket_CMSG_SPACE function သည်အလွန်အသုံး 0 င်သောကိရိယာတစ်ခုဖြစ်ပြီး, ဤလုပ်ဆောင်မှုသည် IPv4 နှင့် IPv6 တွင်အနည်းငယ်ကွဲပြားစွာကွဲပြားစွာပြုမူသည်။ ထို့ကြောင့်ဤကွဲပြားခြားနားမှုများကိုနားလည်ရန်အရေးကြီးသည်။
ဤဆောင်းပါးသည် socket_cmsg_space function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးပြီး IPv4 နှင့် IPv6 တွင်ထိန်းချုပ်မှုမက်ဆေ့ခ်ျများကွဲပြားခြားနားမှုများကိုမည်သို့ကိုင်တွယ်ရမည်ကိုအာရုံစိုက်ပါလိမ့်မည်။
Socket_cMsg_space သည် PHP ရှိ function တစ်ခုဖြစ်သည်။ ထိန်းချုပ်မှုမက်ဆေ့ခ်ျများမှာအထူးအချက်အလက်များဖြစ်သည်။ ၎င်းသည်အများအားဖြင့် metadata များကိုများသောအားဖြင့် metadata ကိုအသုံးပြုလေ့ရှိသည်။
int socket_cmsg_space(int level, int type);
အဆင့် - protocol layer ကိုသတ်မှတ်ပါ။ sol_socket ကို များသောအားဖြင့်အသုံးပြုသည်။
အမျိုးအစား : Control Message အမျိုးအစား, များသောအားဖြင့် so_timestamp သို့မဟုတ် so_rcvbuf စသည်ဖြင့်သတ်မှတ်ပါ။
ဤလုပ်ဆောင်ချက်သည်ထိန်းချုပ်မှုမက်ဆေ့ခ်ျကိုသတ်မှတ်ရန်လိုအပ်သော bytes အရေအတွက်ကိုပြန်ပို့သည်။
Socket_cMsg_space ကို အသုံးပြုသောအခါမက်ဆေ့ခ်ျကိုပြုပြင်ခြင်းကိုထိန်းချုပ်ရန် IPv4 နှင့် IPv6 အကြားကွဲပြားခြားနားမှုများကိုအထူးဂရုပြုသင့်သည်။ IPv4 နှင့် IPv6 သည် protocol ၏ဒီဇိုင်းတွင်ကွဲပြားခြားနားသည်။
IPv4 တွင် Control Message ဖွဲ့စည်းပုံသည်ရိုးရှင်းပါသည်,
ဆန့်ကျင်ဘက်အနေဖြင့် IPv6 Control Message ဖွဲ့စည်းပုံသည်ပိုမိုရှုပ်ထွေးသည်။ ဘာဖြစ်လို့လဲဆိုတော့ IPv6 လိပ်စာကိုယ်တိုင်က IPv4 လိပ်စာထက်အများကြီးပိုကြီးလို့ပါ။ ထို့ကြောင့် IPv6 ကိုလုပ်ဆောင်သောအခါ Socket_cMsg_space သည် ပိုမိုကြီးမားသောလိပ်စာနေရာသို့ပိုမိုများပြားလာရန်လိုအပ်ပါသည်။ ထို့အပြင် IPv6 တွင်နောက်ထပ်သတင်းအချက်အလက်အချို့ပါ 0 င်နိုင်သည်။
IPv4 နှင့် IPv6 အတွက် Control Message များနှင့် IPv6 အတွက် socket_cmsg_space function မှတဆင့်သင်လုပ်ဆောင်လိုသည်ဆိုပါစို့။ ဤတွင်ရိုးရိုး PHP ဥပမာ -
<?php
// a IPv4 socket
$socket_ipv4 = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// a IPv6 socket
$socket_ipv6 = socket_create(AF_INET6, SOCK_STREAM, SOL_TCP);
// ရေတွက်IPv4မက်ဆေ့ခ်ျကိုအာကာသကိုထိန်းချုပ်ပါ
$space_ipv4 = socket_cmsg_space(SOL_SOCKET, SO_TIMESTAMP);
echo "IPv4 မက်ဆေ့ခ်ျကိုထိန်းချုပ်ရန်လိုအပ်အာကာသ: " . $space_ipv4 . " ဒရယ်\n";
// ရေတွက်IPv6မက်ဆေ့ခ်ျကိုအာကာသကိုထိန်းချုပ်ပါ
$space_ipv6 = socket_cmsg_space(SOL_SOCKET, SO_TIMESTAMP);
echo "IPv6 မက်ဆေ့ခ်ျကိုထိန်းချုပ်ရန်လိုအပ်အာကာသ: " . $space_ipv6 . " ဒရယ်\n";
?>
IPv6 နှင့်ဆက်ဆံရာတွင် Socket_cMsg_space သည် IPv4 ထက်ပိုကြီးတဲ့ bytes အရေအတွက်ကိုပြန်ပို့သည်။ အကြောင်းမှာ IPv6 သည်ပိုမိုကြီးမားသောလိပ်စာနေရာအပြင် IPv6 တွင်လည်းပိုမိုခေါင်းစဉ်များပါ 0 င်သည်။ ထို့ကြောင့်ဤကွာခြားချက်သည်နေရာအမှားများမလုံလောက်စေရန်ဤကွာခြားချက်ကိုလျှောက်လွှာတွင်သင့်လျော်စွာစဉ်းစားရန်လိုအပ်သည်။
ကွဲပြားခြားနားသော Control Message အမျိုးအစားများသည်လည်းအာကာသအတွက်မတူညီသောလိုအပ်ချက်များရှိသည်။ ဥပမာအားဖြင့် so_timestamp ထိန်းချုပ်မှုမက်ဆေ့ခ်ျသည်များသောအားဖြင့်အခြားထိန်းချုပ်မှုမက်ဆေ့ခ်ျများထက်သေးငယ်သည်။ So_RCVBUFF ထိန်းချုပ်မှုသတင်းစကားသည်ပိုမိုကြီးမားသောဒေတာဖွဲ့စည်းပုံပါ 0 င်နိုင်သည်။ ထို့ကြောင့်လိုအပ်သောနေရာသည် ပို. ဖြစ်နိုင်သည်။
IPv4 နှင့် IPv6 အတွက်ထိန်းချုပ်မှုမက်ဆေ့ခ်ျများကိုကိုင်တွယ်သည့်အခါ socket_cmsg_space function သည်အလွန်လက်တွေ့ကျသောကိရိယာတစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်မှုကိုမှန်ကန်စွာအသုံးပြုခြင်းအားဖြင့်နေရာမလုံလောက်သောအမှားများကိုရှောင်ရှားရန် Network Programming ရှိ Control Programming တွင်နေရာအလုံအလောက်ခွဲဝေချထားပေးရန်သင်သေချာစေနိုင်သည်။
IPv4 နှင့် IPv6 အကြားကွဲပြားခြားနားမှုများကိုနားလည်ခြင်းသည်ထိန်းချုပ်မှုမက်ဆေ့ခ်ျများလိုအပ်သောဖွဲ့စည်းပုံနှင့်နေရာများတွင်ကွဲပြားသောကြောင့်ဖြစ်သည်။ လက်တွေ့ကျသော applications များတွင်အာကာသကိုမှန်ကန်စွာတွက်ချက်ခြင်းနှင့်၎င်းကိုပိုမိုကောင်းမွန်စေရန် Network protocol protocol အမျိုးအစားများအရသိရသည်အစီအစဉ်၏တည်ငြိမ်မှုနှင့်ထိရောက်မှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်။
IPv4 နှင့် IPv6 ထိန်းချုပ်မှုမက်ဆေ့ခ်ျများအကြားကွဲပြားခြားနားမှုများကိုကိုင်တွယ်ရန် Socket_CMSG_Space function ကိုမည်သို့အသုံးပြုရမည်ကိုနားလည်ရန်ဤဆောင်းပါးကသင့်အားနားလည်ရန်ကူညီပေးပါ။