ကွန်ယက်အက်ပလီကေးရှင်းများကိုတီထွင်သည့်အခါ Socket သည်အလွန်အရေးကြီးသောအစိတ်အပိုင်းတစ်ခုဖြစ်သည့်အတွက်အထူးသဖြင့် PHP တွင် Socket တွင် Socket သည်ကွန်ယက်တွင်အချက်အလက်များကိုလွှဲပြောင်းရန်ခွင့်ပြုသည်။ စွမ်းဆောင်ရည်မြင့်မားသောကွန်ယက်အက်ပလီကေးရှင်းများရှိသည့်ကွန်ယက်အက်ပလီကေးရှင်းများ၌အခြေအနေများသည်ဖြည့်စွက်ခြင်းခံရသော buffer အရွယ်အစားကိုပြောင်းလဲခြင်းသည်လျှောက်လွှာနှင့်တုန့်ပြန်မှုမြန်နှုန်းကိုတိုးတက်အောင်လုပ်ရန်အလွန်အရေးကြီးသည်။ ဤဆောင်းပါးသည် Socket Buffer အရွယ်အစားကိုထိန်းညှိရန်နှင့် Socket Buffer အရွယ်အစားကိုညှိပြီးစွမ်းဆောင်ရည်အပေါ်ဤညှိနှိုင်းမှု၏သက်ရောက်မှုကိုလေ့လာရန် Socket_set_set_option function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
Socket Send Buffer သည်အချက်အလက်များကိုသိမ်းဆည်းရန်အသုံးပြုသောမှတ်ဉာဏ်နေရာဖြစ်သည်။ ဒေတာများကို socket connection မှတဆင့်ပို့သောအခါ၎င်းသည်ပထမဆုံးကြားခံကိုထည့်သွင်းပါလိမ့်မည်။ အကယ်. ကြားခံသည်သေးငယ်လွန်းပါကအချက်အလက်များပေးပို့ခြင်းသည်အထူးသဖြင့်တစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်းဖြစ်ရပ်များတွင်အကန့်အသတ်ရှိနိုင်သည်။ ကြားခံ၏အရွယ်အစားကိုညှိခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဒေတာထုတ်လွှင့်မှု၏ထိရောက်မှုကိုတိုးတက်စေပြီးလျှောက်လွှာ၏စွမ်းဆောင်ရည်ကိုတိုးတက်စေနိုင်သည်။
PHP တွင် Socket_set_set_option function သည် socket ၏အပြုအမူကိုထိန်းချုပ်ရန် Socket Options ကိုသတ်မှတ်ရန်ခွင့်ပြုသည်။ ၎င်း၏ function ကိုလက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
bool socket_set_option ( resource $socket , int $level , int $optname , mixed $optval )
$ socket : တစ်ခုပြီးသား socket socket အရင်းအမြစ်တစ်ခုဖွင့်လှစ်။
$ အဆင့် - Control options level options များ, များသောအားဖြင့် sol_socket ဆိုသည်မှာ General Socket option ကိုသတ်မှတ်ခြင်းကိုဆိုလိုသည်။
$ optname : so_rcvbuf (buffer size) သို့မဟုတ် so_sndbu (buffer size) ကဲ့သို့သော setname ကိုသတ်မှတ်ရန်လိုသည့်ရွေးစရာအမည်။
$ optval : များသောအားဖြင့်ကိန်းဂဏန်းများဖြစ်သော option တန်ဖိုးသည်ကြားခံ၏အရွယ်အစားကိုကိုယ်စားပြုပြီး bytes တွင်ရှိသည်။
Socket_set_stion function ကိုမှတစ်ဆင့် Socket's Sending Buffer အရွယ်အစားကိုဒေတာထုတ်လွှင့်မှုစွမ်းဆောင်ရည်ကိုအကောင်းဆုံးဖြစ်စေရန်ချိန်ညှိနိုင်သည်။ ဥပမာအားဖြင့်, သင်သည် Send Buffer ၏အရွယ်အစားကို 16MB အထိသတ်မှတ်လိုပါကအောက်ပါကုဒ်ကိုသုံးနိုင်သည်ဆိုပါစို့။
<?php
// a TCP Socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// ပစ်မှတ် server ကိုဆက်သွယ်ပါ
socket_connect($socket, "gitbox.net", 80);
// Send Buffer အရွယ်အစားကိုသတ်မှတ်ပါ 16MB
$bufferSize = 16 * 1024 * 1024; // 16MB
socket_set_option($socket, SOL_SOCKET, SO_SNDBUF, $bufferSize);
// ချိန်ညှိချက်များအောင်မြင်သောရှိမရှိစစ်ဆေးပါ
$option = socket_get_option($socket, SOL_SOCKET, SO_SNDBUF);
echo "Send Buffer အရွယ်အစားကိုသတ်မှတ်ထားသည်: " . $option . " ဒရယ်\n";
// ရုပ်သိမ်းခြင်း Socket
socket_close($socket);
?>
ဤကုဒ်တွင် Socket_Counde ကို အသုံးပြု. TCP Socket တစ်ခုကို ဖန်တီး. Socket_Connect မှတဆင့်သတ်မှတ်ထားသော server သို့ဆက်သွယ်ပါ။ ( GitBox.net ကို ဥပမာအဖြစ်ကြည့်ပါ) ထို့နောက်ကျွန်ုပ်တို့သည် Socket_set_option မှ 16MB အထိ Send Buffer အရွယ်အစားကိုသတ်မှတ်သည်။ နောက်ဆုံးတွင် Socket_et_oPtion ကို အသုံးပြု. Socket Buffer Size နှင့် output လုပ်ရန်။
ပေးပို့သည့်ကြားခံအရွယ်အစားကိုချိန်ညှိခြင်းကအချက်အလက်ထုတ်လွှင့်ခြင်းစွမ်းရည်ကိုတိုးတက်စေသည်။ ပုံမှန်အားဖြင့် operating system သည် network activing အရကြားခံအရွယ်အစားကိုအလိုအလျောက်ညှိပေးလိမ့်မည်, သို့သော်အချို့သောမြင့်မားသော 0 န်ဆောင်မှုသို့မဟုတ်မြင့်မားသောတစ်ပြိုင်နက်တည်းဖြစ်ရပ်များတွင်ပုံမှန်ချိန်ညှိချက်များသည်စံနမူနာရှင်များမဟုတ်ပါ။ ကြားခံအရွယ်အစားကိုတိုးမြှင့်ခြင်းအားဖြင့်ဒေတာထုတ်လွှင့်ခြင်းအတွက်ပိတ်ဆို့ခြင်းလျှော့ချနိုင်ပြီး throughput ကိုတိုးတက်အောင်လုပ်နိုင်သည်။
ဥပမာအားဖြင့်, ဖိုင်ကြီးတင်ခြင်းသို့မဟုတ်အချိန်မှန်အချက်အလက် streaming ပြုလုပ်သောအခါပုံမှန်ကြားခံအရွယ်အစားသည်ဂီယာသို့မဟုတ်မကြာခဏပိတ်ဆို့ခြင်းအတွက်နှောင့်နှေးမှုဖြစ်စေနိုင်သည်။ ကြားခံကိုကျိုးကြောင်းဆီလျော်စွာသတ်မှတ်ခြင်းအားဖြင့်အချက်အလက်များကိုပို့သောအခါအချက်အလက်များကိုလျှော့ချနိုင်ပြီးစွမ်းဆောင်ရည်တိုးတက်အောင်ပြုလုပ်နိုင်သည်။
သင့်လျော်သော buffer အရွယ်အစား - ကြားခံအရွယ်အစားတိုးမြှင့်ခြင်းကစွမ်းဆောင်ရည်တိုးတက်လာသည်။ အလွန်အကျွံကြီးမားသောကြားခံများသည်မှတ်ဥာဏ်စွန့်ပစ်ပစ္စည်းများကို ဦး တည်စေပြီးစနစ်အရင်းအမြစ်ဆိုင်ရာအခက်အခဲများကြောင့်အမှားအယွင်းများဖြစ်ပေါ်စေနိုင်သည်။ ထို့ကြောင့်အမှန်တကယ်လိုအပ်ချက်များနှင့်အညီသင့်လျော်သောကြားခံအရွယ်အစားကိုရွေးချယ်ရန်လိုအပ်သည်။
Network status : ကြားခံအရွယ်အစားကိုချိန်ညှိသောအခါပစ်မှတ်ကွန်ယက်၏ bandwidth နှင့် latency ကိုထည့်သွင်းစဉ်းစားရန်လိုအပ်သည်။ ကြီးမားသော bandwidth သို့မဟုတ် latency အနိမ့်အနေဖြင့်အနိမ့်အနေဖြင့်အနိမ့်အနေဖြင့်ပိုမိုကောင်းမွန်သောကြားခံများရှိသည့် network ureurnments များတွင်ပိုမိုကောင်းမွန်သော buffer များရှိနိုင်သည်။ အနိမ့် bandwidth သို့မဟုတ် latency အနိမ့်နှင့်မြင့်မားသော latency နှင့်အတူကွန်ယက်ပတ်ဝန်းကျင်တွင်ကြားခံအရွယ်အစားကိုဂရုတစိုက်ချိန်ညှိရန်လိုအပ်သည်။
operating system ကန့်သတ်ချက်များ - ကွဲပြားခြားနားသော operating systems ကွဲပြားခြားနားသော operating systems သည် buffer အရွယ်အစားအပေါ်ကန့်သတ်ချက်များရှိသည်။ အချို့သော operating system များသည်ကြားခံ၏အများဆုံးတန်ဖိုးကိုကန့်သတ်နိုင်သည်။ အကယ်. သတ်မှတ်ထားသည့်တန်ဖိုးသည်ဤကန့်သတ်ချက်ထက်ကျော်လွန်ပါက Socket_set_option သည် ရှုံးနိမ့်မှုပြန်ပေးပါ။
Socket_set_Ontion ကို အသုံးပြုခြင်းအားဖြင့် Socke Socket ကိုချိန်ညှိရန်အတွက်ကွန်ယက်အက်ပလီကေးရှင်းများ၏စွမ်းဆောင်ရည်ကိုထိရောက်စွာတိုးတက်အောင်လုပ်နိုင်သည်။ Buffer အရွယ်အစားကိုချိန်ညှိခြင်းသည်အသုံးများသော optimization method တစ်ခုဖြစ်သည်။ သို့သော်အမှန်တကယ် application များအရ၎င်းသည်ကွန်ရက်အခြေအနေများနှင့်အညီပြုပြင်ရန်လိုအပ်သည်။