Socket_sendmmmsg ကိုအသုံးပြုပြီးမက်ဆေ့ခ်ျများပို့သည့်အခါ, မက်ဆေ့ခ်ျများထိန်းချုပ်ခြင်းသတင်းအချက်အလက် (ဥပမာဖိုင်ဖော်ပြရန်စသည်တို့) လိုအပ်သည်။ မက်ဆေ့ခ်ျများပို့သည့်အခါ PHP သည် Socket_cMsg_space function ကိုထောက်ပံ့ပေးရန် PHP သည် Control Information အတွက်သင့်တော်သောနေရာအရွယ်အစားကိုတွက်ချက်နိုင်သည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်မှုနှစ်ခုကိုအသုံးပြုသောအခါအာရုံစိုက်ရန်လိုအပ်သည့်ပြ issues နာများစွာကိုဆွေးနွေးပါမည်။
Socket_sendmmmsg လုပ်ဆောင်ချက်သည်အသုံးပြုသူအားမက်ဆေ့ခ်ျများပို့သောအခါပိုမိုများပြားသောသတင်းအချက်အလက်များကိုထပ်မံထည့်သွင်းရန်ခွင့်ပြုသည်။ ဤထိန်းချုပ်မှုဆိုင်ရာအချက်အလက်များကို "Control Message" မှတဆင့်ဖြတ်သန်းသွားသော "Control Messages" မှတဆင့်ဖြတ်သန်းသွားနိုင်သည်။ ဥပမာဖိုင်အသေးစိတ်အချက်အလက်များ, အပိုဒေတာများစသည်တို့ကိုပေးပို့ခြင်းနှင့်သက်ဆိုင်သောအချက်အလက်များနှင့်သက်ဆိုင်သောအချက်အလက်များပါ 0 င်နိုင်သည်။
ဥပမာအားဖြင့်, application တစ်ခုတွင် client သည် socket_sendmsg မှအချက်အလက်များကို Socket_sendmsg မှတစ်ဆင့်ပေးပို့သည်။ server သည်ဖိုင်ကိုရယူနိုင်ရန်ဖိုင်ဖော်ပြချက်တစ်ခုနှင့်အတူလိုက်ပါလိုသည်။ Socket_sendmmsg သည် မက်ဆေ့ခ်ျဖွဲ့စည်းပုံကိုမှန်ကန်စွာသတ်မှတ်ရန်လိုအပ်သည် ။
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($socket, "gitbox.net", 8080);
$msg = "Hello World";
$controlData = socket_cmsg_space($socket, SOL_SOCKET, SCM_RIGHTS, strlen($msg));
// ထို့နောက်အသုံးပြုပါ socket_sendmsg ဒေတာနှင့်ထိန်းချုပ်မှုသတင်းအချက်အလက်ပေးပို့ပါ
Socket_cMsg_space function သည်သတ်မှတ်ထားသောထိန်းချုပ်မှုအချက်အလက်များကိုနေရာချထားနိုင်သည့်ကြားခံအာကာသအရွယ်အစားကိုပြန်လည်ရောက်ရှိစေသည်။ Socket_sendmmsg ကို အသုံးပြု. ဒေတာများကိုပေးပို့သည့်အခါဆေးလိပ်စာမက်ဆေ့ခ်ျပို့ရန်နေရာအလုံအလောက်ထားရန်ကျွန်ုပ်တို့အားနေရာအလုံအလောက်ရှိသည်။ ဤလုပ်ဆောင်ချက်သည်အထူးသဖြင့်အသုံး 0 င်သည်။
$space = socket_cmsg_space($socket, SOL_SOCKET, SCM_RIGHTS, strlen($msg));
ဤနေရာတွင် $ Space Return Value သည် Socket_sendmmmsg သို့ socket_sendmmsg သို့ဖြတ်သန်းသွားသောနေရာကိုကိုယ်စားပြုသည်။
ထိန်းချုပ်မှုဆိုင်ရာသတင်းအချက်အလက်များကို socket_sendmsg ရှိအထူးဖွဲ့စည်းပုံမှတဆင့်ဖြတ်သန်းသည်။ ဤဖွဲ့စည်းပုံသည်မပို့မီ socket_cmsg_space မှတဆင့်သင့်လျော်သောနေရာကိုတွက်ချက်ရန်လိုအပ်သည်။
Socket_sendmmmsg ကို အသုံးပြု. ထိန်းချုပ်မှုဆိုင်ရာအချက်အလက်များကိုပေးပို့သည့်အခါဤထိန်းချုပ်မှုမက်ဆေ့ခ်ျများကိုကြိုတင်သတ်မှတ်ထားသောပုံစံဖြင့်တင်းကြပ်စွာဆောက်လုပ်ထားရမည်။ ဥပမာအားဖြင့်ဖိုင်ဖော်ပြချက်များကိုပေးပို့သည့်အခါကျွန်ုပ်တို့သည် Control Message အမျိုးအစားအဖြစ် scm_Rights ကို အသုံးပြုရန်လိုအပ်သည်။
$control = pack("i", $fd); // ဖိုင်ဖော်ပြချက်များကို binary format ဖြင့်ထုပ်ပိုးရန်လိုအပ်သည်
$buf = socket_sendmsg($socket, $msg, $control, $space);
socket_cmsg_space ကို နေရာတွက်ချက်ရန်နေရာကိုအသုံးပြုသောအခါထိန်းချုပ်မှုသတင်းအချက်အလက်အတွက်နေရာအလုံအလောက်ရှိရန်နေရာအလုံအလောက်ရှိကြောင်းသေချာစေရမည်။ အကယ်. နေရာမလုံလောက်ပါက socket_sendmmsg သည် ကျရှုံးလိမ့်မည်သို့မဟုတ်ပို့ထားသောသတင်းအချက်အလက်များကိုဖြတ်တောက်နိုင်ပြီးမပြည့်စုံသောမက်ဆေ့ခ်ျများရရှိနိုင်သည်။
ယေဘုယျအားဖြင့်စကားပြောခြင်းသည်ဒေတာများကိုပေးပို့သည့်အခါလိုအပ်သောနေရာကိုတွက်ချက်ရန် Socket_CMSG_SPACE function ကိုသုံးပါ ။
$spaceNeeded = socket_cmsg_space($socket, SOL_SOCKET, SCM_RIGHTS, strlen($msg));
if ($spaceNeeded < strlen($control)) {
// မလုံလောက်အာကာသနှင့်ဆက်ဆံခြင်း
}
လက်တွေ့ကျသောအပလီကေးရှင်းများတွင်အထူးသဖြင့် Socket_sendmmmsg ကို သုံး. မက်ဆေ့ခ်ျများပို့သည့်အခါအချို့သောအသုံးများသောအမှားများနှင့်ခြွင်းချက်အချို့ကိုသတိပြုရမည်။
Buffer Splflow : ထိန်းချုပ်မှုသတင်းအချက်အလက်များကို Spatial တွက်ချက်မှုသည်မတိကျပါကကြားခံလျှံကိုဖြစ်စေနိုင်သည်။
Message Truncation : ထိန်းချုပ်မှုအချက်အလက်များ၏အရွယ်အစား၏တိကျသောတွက်ချက်မှုသည်မပြည့်စုံသောမက်ဆေ့ခ်ျထုတ်လွှင့်မှုကိုဖြစ်ပေါ်စေနိုင်သည်။
ပလက်ဖောင်းကွဲပြားခြားနားမှုများ - မတူညီသောပလက်ဖောင်းများသည်ထိန်းချုပ်မှုဆိုင်ရာအချက်အလက်များ၏အရွယ်အစားကွဲပြားမှုကိုကွဲပြားနိုင်သည်။ Socket_CMSG_SPACE ကိုအသုံးပြုပြီး Cross-platform compatibility ကိုသေချာစေနိုင်သည်။
Socket_sendmmmsg ကိုအသုံးပြုပြီးထိန်းချုပ်မှုဆိုင်ရာအချက်အလက်များကိုပေးပို့သည့်အခါဒေတာအရွယ်အစားပေါ် မူတည်. လိုအပ်သောနေရာကိုသေချာစွာတွက်ချက်ရန်နှင့်လုံလောက်သောကြားခံသိုလှောင်ထားရန် socket_cmsg_space function ကိုအသုံးပြုပါ။
ထိန်းချုပ်မှုသတင်းအချက်အလက်သည်မှန်ကန်သောပုံစံနှင့်အမျိုးအစားနှင့် type အမျိုးအစားကိုသေချာစေရန်နှင့်ပစ်မှတ်စနစ်နှင့်သဟဇာတဖြစ်သည်။
အမှားကိုင်တွယ်ခြင်းနှင့်ခြွင်းချက်အခြေအနေများသည်သင့်အားကျရှုံးမှုများသို့မဟုတ်ကြားခံဖြိုဖျက်ရန်အပြည့်အဝပြင်ဆင်ထားရန်သေချာစေရန်အလွန်အရေးကြီးသည်။
Socket_cMsg_space နှင့် socket_sendmsg ကို မှန်ကန်စွာအသုံးပြုခြင်းဖြင့်သင်သည်ဒေတာများကိုပိုမိုထိရောက်စွာနှင့်လုံခြုံစွာထိန်းချုပ်နိုင်သည်။