STONCHRONED I / O စစ်ဆင်ရေးသည် PHP ရှိပရိုဂရမ်းမင်းကွန်ယက်များရှိသည့်အခါအ 0 တ်အထည်နှင့်အချိန်မှန်ဒေတာထုတ်လွှင့်ခြင်းကိုကိုင်တွယ်ရန်အသုံးပြုသောနည်းပညာနည်းလမ်းဖြစ်သည်။ Socket_cMsg_space function သည် PHP တွင်စွမ်းဆောင်ရည်မြင့် Socket ဆက်သွယ်ရေးအတွက်အထူးသဖြင့် Sockets များကိုထိန်းချုပ်သည့်မက်ဆေ့ခ်ျများဖြင့်ကိုင်တွယ်သောအခါအလွန်အသုံးဝင်သော function တစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည် PHP တွင် Socket_cMsg_space function ကိုမည်သို့မှန်ကန်စွာအသုံးပြုရမည်ကို Socket_cMsg_space function ကိုမည်သို့မှန်ကန်စွာအသုံးပြုရမည်ကိုရှင်းပြပါမည်။
Asynchronous I / O စစ်ဆင်ရေးများသည်စစ်ဆင်ရေးပြီးစီးရန်စောင့်ဆိုင်းနေစဉ်အတွင်းအခြားအလုပ်များကိုဆက်လက်လုပ်ဆောင်ရန်အစီအစဉ်ကိုဆက်လက်လုပ်ဆောင်ရန်ခွင့်ပြုသည်။ ဤချဉ်းကပ်နည်းသည်တိုက်ရိုက်ဆက်သွယ်မှုစနစ်များ, ဂိမ်းဆာဗာများ, PHP ကိုယ်တိုင်သည် Python သို့မဟုတ် Node.js ကဲ့သို့သောအခြားဘာသာစကားများကဲ့သို့သောအခြားဘာသာစကားများကဲ့သို့သောအခြားဘာသာစကားများကဲ့သို့သောအခြားဘာသာစကားများကဲ့သို့အရေးယူခြင်းရှိနေသည်။
Socket_cMsg_space function သည် PHP ၏ Socket extension မှပေးသော function တစ်ခုဖြစ်သည်။ ၎င်း၏ function သည်သတ်မှတ်ထားသောထိန်းချုပ်မှုအရေအတွက်ကိုပေးရန်လိုအပ်သော bytes အရေအတွက်ကိုတွက်ချက်ရန်ဖြစ်သည်။ ပေးပို့သူ (သို့) လက်ခံသူ၏ခွင့်ပြုချက်အချက်အလက်များ, ဦး စားပေး,
int socket_cmsg_space(int level, int type);
အဆင့် - sol_socket (socket layer) ကဲ့သို့သော protocol အဆင့်ကိုသတ်မှတ်ပါ။
အမျိုးအစား : Control Message အမျိုးအစားကိုသတ်မှတ်ပါ (ဥပမာ so_rcvbuf သို့မဟုတ် so_rcvbuf )
ဤလုပ်ဆောင်ချက်၏ပြန်လည်နေရာချထားရေးတန်ဖိုးသည်တိကျသောထိန်းချုပ်မှုမက်ဆေ့ခ်ျကိုပေးပို့ရန်သို့မဟုတ်လက်ခံရန်လိုအပ်သော bytes အရေအတွက်ကိုကိုယ်စားပြုသည့်ကိန်းဂဏန်းဖြစ်သည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်ပိတ်ဆို့ထားခြင်းမရှိသော socket ကိုဖန်တီးရန်နှင့် atynchronous mode သို့သတ်မှတ်ရန်လိုအပ်သည်။ ၎င်းကို PHP ၏ Socket_Create နှင့် Socket_set_set_set_sclock ကို အသုံးပြု. ရယူနိုင်ပါသည်။
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "Unable to create socket: " . socket_strerror(socket_last_error()) . "\n";
exit;
}
// Non-blocking mode ကိုသတ်မှတ်ပါ
socket_set_nonblock($socket);
ထိန်းချုပ်မှုမက်ဆေ့ခ်ျများပြုပြင်သည့်အခါထိန်းချုပ်မှုသတင်းအချက်အလက်သိုလှောင်ရန်နေရာအလုံအလောက်ရှိမရှိဆုံးဖြတ်ရန်လိုအပ်သည်။ ဥပမာအားဖြင့်, atynchronous i / o စစ်ဆင်ရေးကိုကိုင်တွယ်သောအခါ, အပိုဆောင်းထိန်းချုပ်မှုမက်ဆေ့ခ်ျများပေးပို့သို့မဟုတ်လက်ခံရရှိရန်လိုအပ်နိုင်ပါသည်။ ကျွန်ုပ်တို့သည် socket_cmsg_space function မှတဆင့်လိုအပ်သောနေရာကိုတွက်ချက်နိုင်သည်။
$level = SOL_SOCKET;
$type = SO_RCVBUF; // ထိန်းချုပ်မှုမက်ဆေ့ခ်ျအမျိုးအစားများ
$spaceRequired = socket_cmsg_space($level, $type);
echo "Required space for control message: $spaceRequired bytes\n";
ဆက်သွယ်မှုများကိုကိုင်တွယ်ရန် Socket_cMsg_space နှင့် Usynchronous I / O ကိုမည်သို့အသုံးပြုရမည်ကိုပြသသည့်ပြည့်ဝသောဥပမာတစ်ခုမှာ -
// a TCP Sockets
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "Unable to create socket: " . socket_strerror(socket_last_error()) . "\n";
exit;
}
// 设置Sockets为非阻塞模式
socket_set_nonblock($socket);
// ဆာဗာကိုဆက်သွယ်ပါ(ဤဥပမာသည်အစားထိုး domain name ကိုသုံးပါလိမ့်မည်)
$serverAddress = 'gitbox.net';
$serverPort = 8080;
$result = socket_connect($socket, $serverAddress, $serverPort);
// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($result === false) {
echo "Connection failed: " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
echo "Connected to $serverAddress on port $serverPort\n";
}
// မက်ဆေ့ခ်ျများကိုထိန်းချုပ်ရန်လိုအပ်သောနေရာကိုတွက်ချက်ပါ
$level = SOL_SOCKET;
$type = SO_RCVBUF;
$spaceRequired = socket_cmsg_space($level, $type);
echo "Required space for control message: $spaceRequired bytes\n";
// ဒေတာပို့ပါ
$message = "Hello, server!";
socket_write($socket, $message, strlen($message));
// ဒေတာကိုလက်ခံရရှိသည်
$response = socket_read($socket, 1024);
echo "Response from server: $response\n";
// 关闭Sockets
socket_close($socket);
Asynchronous I / O စစ်ဆင်ရေးများဖြင့် PHP scripts သည်ပိတ်ဆို့ခြင်းမရှိဘဲကွန်ယက်ချိတ်ဆက်မှုမျိုးစုံကိုတစ်ပြိုင်နက်တည်းကိုင်တွယ်နိုင်သည်။ ၎င်းသည်အချိန်နှင့်တပြေးညီတုံ့ပြန်မှုများလိုအပ်သည့်အပလီကေးရှင်းများ (ဥပမာစကားပြောခြင်း, ဗွီဒီယိုလွှင့်စက်များစသဖြင့်) လိုအပ်သောအပလီကေးရှင်းများအတွက်အလွန်အရေးကြီးသည်။ ရိုးရာ synchronous i / o စစ်ဆင်ရေးများနှင့်နှိုင်းယှဉ်လျှင် Asynchronous I / O သည်ပရိုဂရမ်၏တစ်ပြိုင်နက်တည်းလုပ်ဆောင်မှုနှင့်တုံ့ပြန်မှုမြန်နှုန်းကိုသိသိသာသာတိုးတက်စေနိုင်သည်။
PHP ရှိ Socket_cMsg_space function ကိုသင့်တော်စွာအသုံးပြုခြင်းသည်သင့်အားထိရောက်သော asynchronous i / o စစ်ဆင်ရေးများကိုကိုင်တွယ်ရန်အလွန်အသုံးဝင်သည်။ ပိတ်ဆို့ခြင်းမဟုတ်သော sockets ဖြင့်အသုံးပြုခြင်းဖြင့်သင်သည်တစ်ပြိုင်နက်တည်းဆက်သွယ်မှုများစွာကိုကိုင်တွယ်သောထိရောက်သောကွန်ယက်အသုံးချပရိုဂရမ်များကိုတည်ဆောက်နိုင်သည်။