PHP တွင် Socket_cMsg_space function သည်မက်ဆေ့ခ်ျများကိုထိန်းချုပ်ခြင်းဖြင့်ထုတ်လွှင့်သောဒေတာနေရာအရွယ်အစားကိုတွက်ချက်ရန်အသုံးပြုသောကိရိယာတစ်ခုဖြစ်သည်။ ကွန်ယက်ပရိုဂရမ်းမင်းကိုအထူးသဖြင့် Socket Programming ကိုကိုင်တွယ်သည့်အခါ, သို့သော်ကျွန်ုပ်တို့သည်ဤလုပ်ဆောင်မှုကိုပေါင်းများစွာဝန်းကျင်တွင်အသုံးပြုသောအခါအထူးဂရုပြုရန်လိုအပ်သောအလားအလာရှိသောပြ issues နာအချို့ရှိသည်။
Socket_CMsG_Space function သည်ထိန်းချုပ်မှုမက်ဆေ့ခ်ျ၏အရွယ်အစားကိုတွက်ချက်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ Control Message များကို Sendmmmsg () သို့မဟုတ် Recvissg () functions များမှတဆင့်ပေးပို့ခြင်းသို့မဟုတ်လက်ခံရရှိသည်။ ၎င်းတို့သည်နောက်ထပ်သတင်းအချက်အလက်များကိုသယ်ဆောင်ရန်အသုံးပြုသည် (အချက်အလက် packet ၏ header header address, tim ည့်သည်, Timestamp စသည်) ။ Socket_cMsg_space function ကအဓိကအားဖြင့်အောက်ပါနည်းလမ်းများမှတဆင့်ကူညီသည်။
int socket_cmsg_space(int level, int type);
အဆင့် - မက်ဆေ့ခ်ျ၏ protocol level ကိုထိန်းချုပ်သည် (ဥပမာ, sol_socket ) ။
အမျိုးအစား : မက်ဆေ့ခ်ျအမျိုးအစားကိုထိန်းချုပ်သည် (ဥပမာ, so_timbestamp ) ။
ဤလုပ်ဆောင်ချက်၏ပြန်လာတန်ဖိုးမှာသတ်မှတ်ထားသောထိန်းချုပ်မှုမက်ဆေ့ခ်ျအမျိုးအစားအတွက်ခွဲဝေချထားရန်လိုအပ်သည့် bytes အရေအတွက်ဖြစ်သည်။
MultxMeaded ပတ်ဝန်းကျင်တွင် Socket_CMSG_SPACE function ၏ဖြစ်နိုင်ချေရှိသောပြ problems နာများကိုအထူးဂရုပြုရန်လိုအပ်သည်။ ပထမ ဦး စွာ socket_cmsg_space ကိုယ်တိုင်ကချည်မျှင်ပြ problems နာများကိုတိုက်ရိုက်မဖြစ်စေနိုင်ကြောင်းရှင်းရှင်းလင်းလင်းဖော်ပြသင့်သည်။
ပေါင်းစုံသောဝန်းကျင်တွင် Threads မျိုးစုံသည်တစ်ချိန်တည်းတွင် socket အရင်းအမြစ်ကိုတစ်ချိန်တည်းတွင်ဝင်ရောက်ကြည့်ရှုနိုင်သည်။ အကယ်. Threads call socket_cmsg_space (သို့) ဆက်နွယ်မှု / လက်ခံခြင်းလုပ်ငန်းများကိုတစ်ချိန်တည်းတွင်ခေါ်ဆိုပါက၎င်းသည်သယံဇာတပြိုင်ဆိုင်မှုများနှင့်ကြိုးယှဉ်ပြိုင်မှုပြ problems နာများကိုဖြစ်ပေါ်စေနိုင်သည်။ ဤကိစ္စတွင်အချက်အလက်များအရဒေတာအဂတိလိုက်စားမှုသို့မဟုတ်ပ conflict ိပက်ခများဖြစ်ပွားနိုင်သည်။
PHP Socket extensions သည်ချည်မျှင်မဟုတ်ပါ။ မှန်ကန်သောသော့ခတ်ထားသည့်ယန္တရားသည်လုပ်ငန်းလည်ပတ်မှုများကိုတူညီသောသော့ခတ်ထားသဖြင့်ခန့်မှန်းရခက်သည့်ပတ်ဝန်းကျင်တွင်ခန့်မှန်းရခက်သည့်အပြုအမူရလဒ်ဖြစ်ပေါ်နိုင်သည်။ ဥပမာအားဖြင့်, ချည်ခေါ်ဆိုမှုတစ်ခုက Socket_cMsg_space တစ်ခုဖြစ်တဲ့ အချိန်မှာနောက်ထပ်ချည်တစ်ခုက socket state ကိုပြုပြင်မွမ်းမံနိုင်တယ်, Control Message space ကိုတွက်ချက်တဲ့အခါအမှားတစ်ခုဖြစ်ပေါ်စေနိုင်တယ်။
အထူးသဖြင့် Socket_cMsg_space ကို အသုံးပြုသော application တွင်အရင်းအမြစ်ကိုမှန်ကန်စွာဖြည့်ဆည်းခြင်းမပြုပါကအရင်းအမြစ်များယိုစိမ့်မှုဖြစ်နိုင်သည်။ အထူးသဖြင့် Sendmmsg () နှင့် Recvissg တို့၏လုပ်ဆောင်မှုများကိုထိန်းချုပ်သည့်အခါတစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်းပတ် 0 န်းကျင်တွင်အထူးသဖြင့် comstmmsg () လုပ်ဆောင်ချက်များကိုထိန်းချုပ်သည့်အခါမသင့်လျော်သောအရင်းအမြစ်ဖြန့်ချိမှုသည်စနစ်မှတ်ဉာဏ်နှင့်ဆက်သွယ်မှုပြ problems နာများကိုဖြစ်ပေါ်စေလိမ့်မည်။
socket_cmsg_space ကိုလုံခြုံစွာအသုံးပြုခြင်းကိုပေါင်းသင်းနေသည့်ဝန်းကျင်တွင်လုံခြုံစွာအသုံးပြုခြင်းကိုသေချာစေရန်အကောင်းဆုံးသောအလေ့အကျင့်များကိုလိုက်လျှောက်ရန်လိုအပ်သည်။
Socket_cMsg_space function ကိုမသုံးမီနှင့်အပြီးသတ် mutexes (ထိုကဲ့သို့သော mutex ) ကိုအသုံးပြုခြင်းအားဖြင့်, တစ်ချိန်တည်းမှာတူညီသော socket အရင်းအမြစ်ကိုရယူခြင်းမှချည်မျှင်မျိုးစုံတားဆီးနိုင်ပါတယ်။ ဤတွင် Mutex ကိုမည်သို့အသုံးပြုရမည်ကိုပြသည့်ရိုးရှင်းသောဥပမာတစ်ခုရှိသည်။
$mutex = new Mutex(); // တစ် ဦး mutex ဖန်တီးပါ
$mutex->lock(); // သော့ခတ်
// ဒီမှာခေါ် socket_cmsg_space
$space = socket_cmsg_space(SOL_SOCKET, SO_TIMESTAMP);
$mutex->unlock(); // သော့ဖွင့်
ကြိုးတစ်ချောင်းစီအတွက်သီးခြား socket များဖန်တီးပါ။ ၎င်းသည်တစ်ပြိုင်တည်းလက်လှမ်းမီမှုကြောင့်ထပ်တူပြုခြင်းပြ problems နာများကိုလျှော့ချနိုင်သည်။
// ချည်တစ်ခုစီအတွက်သီးခြား socket များကိုဖန်တီးပါ
$socket1 = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$socket2 = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// သူတို့ရဲ့သက်ဆိုင်ရာချည်ထဲမှာအသုံးပြုခဲ့သည်
PHP ကိုယ်တိုင်သည်ချည်မျှင်မဟုတ်ပါ, သို့သော်အချို့သောတတိယပါတီစာကြည့်တိုက်များသည်ချည်မျှင်လုံခြုံမှုရှိနိုင်သည် ဥပမာအားဖြင့်, ချည်မျှင်များကို အင်္ကျီ တိုးချဲ့မှုများသို့မဟုတ် အပြိုင် extension များဖြင့်ဖန်တီးနိုင်ပြီးစီမံနိုင်သည်။
Socket_cMsg_space ကို အသုံးပြုသောအခါ Multipreaded ပတ်ဝန်းကျင်တွင်အချို့သောစိန်ခေါ်မှုမှာ Threads အကြားမျှဝေထားသောအရင်းအမြစ်များကိုထိရောက်စွာစီမံရန်ဖြစ်သည်။ Mutexes ကိုကျိုးကြောင်းဆီလျော်စွာအသုံးပြုခြင်းဖြင့်လွတ်လပ်သော sockets တစ်ခုချင်းစီကို 0 င်ရောက်ခြင်းနှင့်ချည်မျှင်လုံခြုံသောပရိုဂရမ်နည်းကိုရွေးချယ်ခြင်းဖြင့်တစ်ပြိုင်နက်တည်းကြုံတွေ့ရသည့်ပြ problems နာများကိုလျှော့ချနိုင်သည်။ သို့သော် PHP ၏ Socket extension သည် Multi-Threaded လုပ်ငန်းများအတွက်အပြည့်အ 0 ထောက်ခံမှုမပေးထားသဖြင့် Threads ကိုဂရုတစိုက်ဒီဇိုင်းရေးဆွဲရန်လိုအပ်သည်။
ကိုးကားစရာ link
ရည်ညွှန်းနိုင်သည့်အချို့သော URL လိပ်စာများတွင်တရားဝင်စာရွက်စာတမ်းများနှင့်ဆက်စပ်သော socket extensions ၏ဆက်စပ်သောအရင်းအမြစ်များနှင့်သက်ဆိုင်သည်။ စာဖတ်ခြင်းလွယ်ကူစေရန်ဤ link domains များကို GitBox.net ဖြင့်အစားထိုးထားသည်။