ကွန်ယက်ပရိုဂရမ်းမင်းအထူးသဖြင့်မြင့်မားသောတစ်ပြိုင်နက်တည်း concururency system များတွင်အချက်အလက်များကိုမည်သို့ထိရောက်စွာထုတ်လွှင့်နိုင်ပုံကိုစွမ်းဆောင်ရည်ကောင်းမွန်သည့်အတွက်အဓိကပြ issue နာတစ်ခုဖြစ်လာသည်။ ဒေတာထုတ်လွှင့်မှုစွမ်းဆောင်နိုင်မှုတိုးတက်စေရန်အတွက် operating system မှထောက်ပံ့သောမြှောက်ကိန်းနည်းပညာကိုဆွေးနွေးရန်အလွန်လိုအပ်သည်။ PHP တွင် Nature Socket Programming ကိုအသုံးပြုသောအခါ sociec_cmsg_space function ကို configure လုပ်ပြီးစီမံနိုင်သည်။
Socket_cMsg_space function ကိုအဓိကအားဖြင့် Sendmmsg () Recvissg () စစ်ဆင်ရေးအတွက်နေရာချထားရန်အဓိကအားဖြင့်အထူးသဖြင့်ထိန်းချုပ်မှုမက်ဆေ့ခ်ျများ, ဤဆောင်းပါးသည်ဒေတာထုတ်လွှင့်မှုစွမ်းဆောင်နိုင်မှုကိုပိုမိုကောင်းမွန်စေရန်ဤလုပ်ဆောင်မှုနှင့်ဆက်စပ်သောနည်းပညာများကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်မိတ်ဆက်ပေးလိမ့်မည်။
Socket_cMsg_space သည်ထိန်းချုပ်မှုအချက်အလက်များကိုဖြတ်သန်းသွားသောအခါလိုအပ်သောကြားခံနေရာကိုပြန်ပို့ပေးသောနောက်ခံစနစ်ခေါ်ဆိုမှု function ဖြစ်သည်။ ထိန်းချုပ်မှုအချက်အလက်များတွင်တီးဝိုင်းမှဒေတာ (OOB), IP header options များ, error information စသည်တို့, များသောအားဖြင့်ဤထိန်းချုပ်မှုအချက်အလက်များသည်အချက်အလက်များကိုလွှင့်ထုတ်လွှင့်ခြင်းတွင်တိုက်ရိုက်ပါ 0 င်ခြင်းမရှိပါ။ သင့်လျော်သော configuration သည်မှတ်ဥာဏ်လျှံလျှံလျှံလျှံမှုများကိုရှောင်ရှားနိုင်ပြီးဒေတာပြုပြင်ခြင်း၏စွမ်းဆောင်ရည်ကိုတိုးတက်စေသည်။
// PHPအိမ်တွင်းsocket_cmsg_spaceလုပ်ဆောင်ချက်
socket_cmsg_space(int $level, int $type): int
$ Level - Sol_Soctock , ipproto_ip စသည့်မက်ဆေ့ခ်ျများကိုထိန်းချုပ်ရန် Protocol Layer ကိုသတ်မှတ်သည်။
$ type : so_rcvbuf , so_rcvbuf စသဖြင့်မက်ဆေ့ခ်ျအမျိုးအစားကိုထိန်းချုပ်သည်။
ဒီ function ရဲ့ပြန်လာတန်ဖိုးကိုလိုအပ်တဲ့အနည်းဆုံးကြားခံအရွယ်အစားကိုဖြစ်ပါတယ်။
Multiplexed Sockets သည် Data streams မျိုးစုံကိုတစ်ပြိုင်နက်တည်း sococke descriptor ဖြင့်တစ်ပြိုင်တည်းလုပ်ဆောင်နိုင်စွမ်းဖြစ်သည်။ operating system သည် Select () , စစ်တမ်း () သို့မဟုတ် eproll () ကဲ့သို့သောယန္တရားများမှတစ်ဆင့်မြှင့်တင်ခြင်းကိုသဘောပေါက်သည်။ PHP တွင် Socket_select () function သည်ဤ function ကိုအကောင်အထည်ဖော်နိုင်သည်။
မြှောက်ပေါင်းခြင်းနှင့်ပေါင်းသင်းဆက်ဆံရေးတစ်ခုချင်းစီကိုသီးခြား socket တစ်ခုကိုသတ်မှတ်ခြင်းကိုရှောင်ရှားနိုင်သည်။ Multipliming သည် System အရင်းအမြစ်များကိုစားသုံးခြင်းကိုလျှော့ချရုံသာမက Network communicence ၏ထိရောက်မှုကိုလည်းပိုမိုကောင်းမွန်စေသည်။
စွမ်းဆောင်ရည်မြင့်ကွန်ပျူတာပရိုဂရမ်းမင်းတွင်ထိန်းချုပ်မှုအချက်အလက်များ (ဥပမာ - တီးဝိုင်းအချက်အလက်များ, အမှားအယွင်းများစသဖြင့်) ထုတ်လွှင့်နိုင်သည့်အချက်တစ်ချက်ဖြစ်သည်။ Socket_CMSG_SPACE function သည်ရန်မတွေ့နိုင်သောကြောင့်ဒေတာထုတ်လွှင့်ခြင်းသို့မဟုတ်စွမ်းဆောင်ရည်မြှင့်တင်ခြင်းများတွင်ပျက်ကွက်မှုများကိုရှောင်ရှားရန်ကျိုးကြောင်းဆီလျော်မှုရှိရန်အထောက်အကူပြုနိုင်သည်။
အောက်ပါ PHP Code သည် Data Transmission ကိုပိုမိုကောင်းမွန်စေရန် Multiplexing ယန္တရားများကိုတွက်ချက်ရန် Socket_CMsG_Space ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည်။
<?php
// socket တစ်ခုဖန်တီးပါ
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// လိပ်စာနှင့် port ကို configure
$host = "gitbox.net"; // စိတ်ကြိုက်ဒိုမိန်းအမည်ကိုသုံးပါgitbox.net
$port = 8080;
socket_bind($socket, $host, $port);
// ဆက်သွယ်မှုကိုနားထောင်ပါ
socket_listen($socket);
// ဖြစ်ရပ် loop ကိုရိုက်ထည့်ပါ
while (true) {
// အသုံးပြုsocket_selectမြှောက်ခဲှမမှု
$read = [$socket]; // နားထောင်ခြင်း Socket
$write = null;
$except = null;
$num_changed_sockets = socket_select($read, $write, $except, null);
if ($num_changed_sockets > 0) {
// ဖောက်သည်တစ် ဦး သည်ဆက်သွယ်မှုကိုတောင်းဆိုသည်
$client = socket_accept($socket);
// လိုအပ်သောထိန်းချုပ်မှုမက်ဆေ့ခ်ျကိုကြားခံအာကာသတွက်ချက်
$level = SOL_SOCKET;
$type = SO_RCVBUF; // Buffer ကိုလက်ခံရရှိသည်
$buffer_size = socket_cmsg_space($level, $type);
echo "Buffer အာကာသအရွယ်အစား:".$buffer_size."\n";
// ဒေတာထုတ်လွှင့်ခြင်းနှင့် reception ည့်ခံစစ်ဆင်ရေးလုပ်ဆောင်ပါ...
// client socket ကိုပိတ်ပါ
socket_close($client);
}
}
// အဓိက socket ကိုပိတ်ပါ
socket_close($socket);
?>
အထက်ပါကုဒ်တွင် Socket_cMsg_space သည်အဓိကအားဖြင့်စနစ်ကိုထိန်းချုပ်သည့်အခါစနစ်တွင်လုံလောက်သော buffer space ရှိသည်ဟုသေချာစေရန်အဓိကအသုံးပြုသည်။ အထူးသဖြင့်တစ်ပြိုင်နက်တည်းဆက်သွယ်မှုများကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါကြားခံနေရာမလုံလောက်ပါက packet အရှုံး, ဒေတာဆုံးရှုံးမှုနှင့်အခြားပြ problems နာများဖြစ်ပေါ်လာနိုင်သည်။ သင့်လျော်သောကြားခံများကိုကြိုတင်ကာကွယ်ရေးအားဖြင့်ဤပြ problems နာများကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီးအချက်အလက်ထုတ်လွှင့်မှု၏တည်ငြိမ်မှုနှင့်ထိရောက်မှုကိုတိုးတက်စေနိုင်သည်။
မြှောက်စုံယန္တရားများမှတဆင့် connection တစ်ခုချင်းစီအတွက်လွတ်လပ်သော sockets များဖန်တီးပေးခြင်းထက် socket_select ကို သုံးနိုင်သည်။ ၎င်းသည် System အရင်းအမြစ်များကိုထိထိရောက်ရောက်အသုံးချခြင်းသာမကကွန်ယက်နှောင့်နှေးမှုကိုလျှော့ချရန်နှင့်ဂီယာအမြန်နှုန်းကိုတိုးတက်စေသည်။
ကျိုးကြောင်းဆီလျော်သော socket များကို configure လုပ်ရန်နှင့်စီမံခန့်ခွဲရန် socket_cmsg_space function ကို အသုံးပြု. ကျိုးကြောင်းဆီလျော်စွာအသုံးပြုခြင်းဖြင့်ဒေတာထုတ်လွှင့်မှုစွမ်းဆောင်ရည်ကိုထိရောက်စွာတိုးတက်အောင်လုပ်နိုင်သည်။ လက်တွေ့ကျသော application များအရကျိုးကြောင်းဆီလျော်သောကြားခံပြင်ဆင်မှုသည်မှတ်ဥာဏ်အရင်းအမြစ်များကိုဖြုန်းတီးခြင်းနှင့်ကွန်ယက်ဆက်သွယ်ရေးတည်ငြိမ်မှုနှင့် throughpput ကိုတိုးတက်စေနိုင်သည်။ ထို့ကြောင့်ဤလုပ်ဆောင်မှုနှင့်အခြားဆက်စပ်ကွန်ယက်ပရိုဂရမ်ပရိုဂရမ်ပရိုဂရမ်းမင်းနည်းစနစ်များကိုမည်သို့အသုံးပြုရမည်ကိုကျွမ်းကျင်သည် PHP ကွန်ယက်အက်ပလီကေးရှင်းများ၏စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်လုပ်ရန်အလွန်အရေးကြီးသည်။