ကွန်ယက်ပရိုဂရမ်တွင် Socketets သည်ဒေတာဆက်သွယ်ရေးအတွက်အရေးကြီးသောကိရိယာတစ်ခုဖြစ်သည်။ PHP ကိုယ်တိုင်က socket operations နှင့်သက်ဆိုင်သောလုပ်ဆောင်ချက်အမျိုးမျိုးကိုထောက်ပံ့ပေးသည် ။ အထူးသဖြင့်အကြီးစားကွန်ယက်ဆက်သွယ်မှုများ၌ socket စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်အခြားကွန်ရက်နှင့်သက်ဆိုင်သောလုပ်ဆောင်ချက်များနှင့် Socket_CMsg_space ကို မည်သို့အသုံးပြုရမည်ကိုဤဆောင်းပါးကရှင်းပြပါမည်။
Socket_cMsg_space function သည် PHP ရှိ function တစ်ခုဖြစ်ပြီး Control Information (CMMSG) အတွက်လိုအပ်သောနေရာကိုတွက်ချက်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ Control Information သည် (IP address, port nox စသည်တို့) နှင့်ပတ်သက်သည့်နောက်ထပ်အချက်အလက်များကိုထပ်မံအချက်အလက်များပေးရန် Socket မှတဆင့်နောက်ထပ်အချက်အလက်များထုတ်ပြန်သောနောက်ထပ်အချက်အလက်များဖြစ်သည်။ Sendmmsg သို့မဟုတ် Recvissg function ကိုအသုံးပြုသောအခါမက်ဆေ့ခ်ျခေါင်းစီးတွင်ထိန်းချုပ်မှုဆိုင်ရာသတင်းအချက်အလက်များကိုထိန်းချုပ်ရန်အတွက်သိုလှောင်ထားသည့်နေရာကိုရှာဖွေရန်၎င်း၏လုပ်ဆောင်မှုမှာ developer များရှာဖွေရေးအတွက်နေရာကိုနားလည်ရန်ဖြစ်သည်။
int socket_cmsg_space(int level, int type);
အဆင့် - Protocol layer ကိုများသောအားဖြင့် sol_socket ကို သတ်မှတ်ပါ။
အမျိုးအစား - so_timbestamp သို့မဟုတ် so_peercred ကဲ့သို့သော control information information type အမျိုးအစားကိုသတ်မှတ်ပါ။
Socket_cMsg_space function ၏ return တန်ဖိုးသည်လိုအပ်သော bytes အရေအတွက်ဖြစ်သည်။ developer များကပြန်လာသောတန်ဖိုးနှင့်အညီကြားခံ၏အရွယ်အစားကိုပြောင်းလဲနိုင်သည်။
Network Programming တွင်ဒေတာ packets များကိုပုံမှန်အားဖြင့်မှတ်ဉာဏ်ခွဲဝေချထားမှုဖြင့်လိုက်ပါသွားသည်။ Socket_cMsg_space function ကို အသုံးပြု. လိုအပ်သောနေရာကိုကျွန်ုပ်တို့တွက်ချက်ပြီးထိန်းချုပ်မှုဆိုင်ရာအချက်အလက်များကိုကြိုတင်မှတ်ဉာဏ်အတွက်လုံလောက်စွာချမှတ်နိုင်သည်။ Dynamic Allocation နှင့် Memory Recycling ၏ overhead ကိုရှောင်ရှားနိုင်ရုံသာမက data packets များ၏ထုတ်လွှင့်ခြင်းလုပ်ငန်းစဉ်သည်ပိုမိုထိရောက်စေသည်။
ထိန်းချုပ်မှုအချက်အလက်များ၏အရွယ်အစားကိုအပြည့်အဝထည့်သွင်းစဉ်းစားမထားပါကကြားခံလျှံထွက်စေနိုင်သည်။ Socket_CMSG_SPACE function ကိုအသုံးပြုခြင်းအားဖြင့် developer များအနေဖြင့်ဖြည့်ပြ problems နာများကိုရှောင်ရှားရန်ထိန်းချုပ်မှုအချက်အလက်များအပါအ 0 င်အချက်အလက်အားလုံးကိုသိမ်းဆည်းရန်သတ်မှတ်ထားသောကြားခံအရွယ်အစားသည်လုံလောက်မှုရှိစေရန်လုံလောက်သည်။
ထိန်းချုပ်မှုဆိုင်ရာအချက်အလက်များ (ဥပမာ timestamps, routing and informent စသဖြင့်) သည်ကွန်ယက်အက်ပလီကေးရှင်းများအတွက်အလွန်အရေးကြီးသည်။ ထိန်းချုပ်မှုသတင်းအချက်အလက်ထုတ်လွှင့်မှုကိုပိုကောင်းအောင်ပြုလုပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အချက်အလက် packets များ၏ယုံကြည်စိတ်ချရမှုနှင့်တိကျမှန်ကန်မှုကိုတိုးတက်စေနိုင်သည်။ Socket_cMsg_space function ကကျွန်တော်တို့ကိုကြားခံရဲ့အရွယ်အစားကိုတိကျစွာထိန်းချုပ်နိုင်ပြီးမလိုအပ်တဲ့အချက်အလက်ဆုံးရှုံးမှုကိုရှောင်ကြဉ်သည်။
Sendmsg နှင့် Recvissg လုပ်ဆောင်ချက်များသည်ဒေတာနှင့်ထိန်းချုပ်မှုအချက်အလက်များကိုတစ်ချိန်တည်းတွင်လုပ်ဆောင်နိုင်သည်။ Socket_cMsg_space ကို ပေါင်းစပ်ပြီးဒီနှစ်ခုလုပ်ဆောင်ချက်နှစ်ခုကိုပေါင်းစပ်ပြီး developer များက packets တွေကိုထပ်ဆင့်ထိန်းချုပ်မှုအချက်အလက်ကိုပိုမိုထိရောက်စွာပေးပို့နိုင်သည်။
ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် timestamp ပါ 0 င ် သောစာတစ်စောင်ပို့ချင်သောဆိုပါစို့။
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
$address = '192.168.1.1';
$port = 12345;
$message = "Hello, Network!";
// ထိန်းချုပ်မှုသတင်းအချက်အလက်အာကာသတွက်ချက်
$control_space = socket_cmsg_space(SOL_SOCKET, SO_TIMESTAMP);
$control_buffer = str_repeat("\0", $control_space);
// ဒေတာပို့ပါ
socket_sendto($socket, $message, strlen($message), 0, $address, $port);
အလားတူပင် Socket_recvfrom function သည် data control information နှင့်ရရှိနိုင်သည်။ ဒေတာနှင့်ထိန်းချုပ်မှုအချက်အလက်များကိုထိန်းချုပ်ရန်လုံလောက်သောကြီးမားသည်ကိုသေချာစေရန် socket_cmsg_space function ကိုသုံးနိုင်သည်။
$control_buffer = str_repeat("\0", $control_space);
$bytes_received = socket_recvfrom($socket, $buffer, 1024, 0, $address, $port);
စွမ်းဆောင်ရည်မြင့်မားသောကွန်ယက်များကိုပရိုဂရမ်ရေးဆွဲသည့်အခါ socienty options များကိုစနစ်တကျပြင်ဆင်ရန်အလွန်အရေးကြီးသည်။ ဒေတာထုတ်လွှင့်မှုစွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေရန် So_RCVBUFF နှင့် SO_RCVBUF ကဲ့သို့သော Socket Options များကိုပြုပြင်ရန် Socket_set_set_option function ကိုသုံးပါ။ ဥပမာအားဖြင့်, လက်ခံခြင်း၏အရွယ်အစားကိုတိုးမြှင့်ခြင်းနှင့်ကြားခံပေးပို့ခြင်းသည်တိုးပွားစေနိုင်သည်။
socket_set_option($socket, SOL_SOCKET, SO_RCVBUF, 8192);
socket_set_option($socket, SOL_SOCKET, SO_RCVBUF, 8192);
socket မျိုးစုံကိုတစ်ပြိုင်နက်တည်းလုပ်ဆောင်ရန်လိုအပ်ပါက i / O စစ်ဆင်ရေးကိုအကောင်းဆုံးလုပ်ဆောင်ရန် socket_select function ကိုသုံးနိုင်သည်။ ၎င်းသည်ပရိုဂရမ်များကိုစာဖတ်ခြင်းအတွက်စာဖတ်ခြင်းအတွက်အဆင်သင့်ဖြစ်နေသည်ကိုစစ်ဆေးရန်ခွင့်ပြုရန်ခွင့်ပြုသည်။
$read_sockets = array($socket);
$write_sockets = null;
$except_sockets = null;
socket_select($read_sockets, $write_sockets, $except_sockets, 0, 200000);
Socket_CMSG_SPACE function ကိုအခြားကွန်ယက်နှင့်သက်ဆိုင်သောလုပ်ဆောင်ချက်များဖြင့်ပေါင်းစပ်ခြင်းအားဖြင့် PHP Network Programming တွင် Control Information နှင့် data liber ကိုပိုမိုထိရောက်စွာကိုင်တွယ်နိုင်သည်။ ဤအကောင်းမြင်သည့်အစီအမံများသည် Socket Performance ကိုပိုမိုကောင်းမွန်စေရုံသာမကပိုမိုတည်ငြိမ်။ ယုံကြည်စိတ်ချရသောကွန်ယက်ဆက်သွယ်ရေးကိုလည်းသေချာစေသည်။ အထူးသဖြင့်အချက်အလက်အမြောက်အများကိုလွှဲပြောင်းခြင်းနှင့်မြင့်မားသောတစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများကိုကိုင်တွယ်ရန်လိုအပ်သည့် applications များ၌ဤနည်းစနစ်များသည် developer များကိုစွမ်းဆောင်ရည်မြှင့်တင်နေစဉ် developer များစားသုံးမှုကိုလျှော့ချရန်ကူညီနိုင်သည်။