PHP တွင် socket_etsockname နှင့် socket_cmsg_space တွင် seckets သုံး. ပရိုဂရမ်များအပေါ်ကွန်ယက်များအသုံးပြုသောပရိုဂရမ်းမင်းကွန်ယက်များကိုအသုံးပြုသောအခါအသုံးပြုသောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ အထူးသဖြင့်ကွန်ယက်ဆက်သွယ်မှုများကိုကိုင်တွယ်သည့်အခါ Secters နှင့်ပတ်သက်သည့်အသေးစိတ်အချက်အလက်များကိုအသေးစိတ်အချက်အလက်များရရန်သူတို့ကကူညီသည်။ ဤဆောင်းပါးသည် Socket Information ကိုရယူရန်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမည်သို့ပေါင်းစပ်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
ချိတ်ဆက်ထားသော socket နှင့်ဆက်စပ်သောဒေသဆိုင်ရာလိပ်စာအချက်အလက်များကိုရရှိရန် Socket_etsockname function ကိုအသုံးပြုသည်။ လက်ရှိအိမ်ရှင်နှင့်ဝေးလံသောအိမ်ရှင်အကြားဆက်သွယ်မှုအခြေအနေကိုရယူရန်အလွန်အရေးကြီးသည်။ လုပ်ဆောင်ချက်ကိုအောက်ပါအတိုင်းသတ်မှတ်ထားသည်။
int socket_getsockname ( int $socket , string &$address , int &$port )
$ socket : မှန်ကန်သော socket အရင်းအမြစ်တစ်ခုဖြစ်သည်။
$ လိပ်စာ - Socket ၏ဒေသဆိုင်ရာလိပ်စာကိုပြန်ပို့သည်။
$ port : Socket ရဲ့ port နံပါတ်ကိုပြန်ပို့သည်။
Socket_cMsg_space function ကိုလက်ရှိမက်ဆေ့ခ်ျထိန်းချုပ်မှုအချက်အလက် (CMSG) အတွက်လိုအပ်သောနေရာကိုပြန်ပို့ရန်အသုံးပြုသည်။ ၎င်း၏ရည်ရွယ်ချက်မှာ Control Message အတွက်နေရာမှန်ကိုမှန်ကန်စွာခွဲဝေချထားနိုင်ရန်အတွက်တိကျသော protocol အတွက်စာနယ်ဇင်းထိန်းချုပ်မှုအရွယ်အစားကိုတွက်ချက်ရန်ဖြစ်သည်။
int socket_cmsg_space ( int $level , int $type )
$ အဆင့် - Protocol Layer ကိုအထူးသဖြင့် Sol_Socket ကို သတ်မှတ်ပါ။
$ type : So_rCVBUF ကဲ့သို့သောမက်ဆေ့ခ်ျအမျိုးအစားကိုထိန်းချုပ်သည်။
ဤလုပ်ဆောင်ချက်နှစ်ခုကိုပေါင်းစပ်အသုံးပြုသည်ကိုပိုမိုနားလည်ရန်အတွက် Socket_etsockname နှင့် Socket_CMsg_space ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည့်ရိုးရှင်းသော PHP နမူနာကုဒ်ဖြစ်သည်။
<?php
// a TCP Sockets
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "Sockets创建失败: " . socket_strerror(socket_last_error()) . "\n";
exit();
}
// 绑定Sockets
$address = '127.0.0.1';
$port = 8080;
if (socket_bind($socket, $address, $port) === false) {
echo "Sockets绑定失败: " . socket_strerror(socket_last_error()) . "\n";
exit();
}
// 获取Sockets的本地地址和端口
if (socket_getsockname($socket, $localAddress, $localPort) === false) {
echo "获取Sockets信息失败: " . socket_strerror(socket_last_error()) . "\n";
} else {
echo "Sockets本地地址: $localAddress\n";
echo "Sockets本地端口: $localPort\n";
}
// Control Message Space ကိုရယူပါ
$level = SOL_SOCKET;
$type = SO_RCVBUF;
$space = socket_cmsg_space($level, $type);
echo "မက်ဆေ့ခ်ျကိုအာကာသအရွယ်အစားကိုထိန်းချုပ်ပါ: $space\n";
// 关闭Sockets
socket_close($socket);
?>
Socket Create : Socket_create မှတဆင့် TCP socket တစ်ခုကိုဖန်တီးပါ။ AF_ATET ဆိုသည်မှာ IPv4 protocol ကို အသုံးပြု. Sock_Stream ကို အသုံးပြုသည်။ Sock_Stream ဆိုသည်မှာ stream socket များကိုအသုံးပြုခြင်းနှင့် Sol_tcp သည်သယ်ယူပို့ဆောင်ရေးအလွှာ protocol ဖြစ်သည်။
ခညျြနှောငျ socket : socket_bind ကို cocket_bind ကိုသတ်သတ်မှတ်မှတ်ဒေသဆိုင်ရာလိပ်စာနှင့်ဆိပ်ကမ်းသို့ချည်နှောင်ရန် (ဤဥပမာတွင်လိပ်စာသည် 127.0.0.1.1 ဖြစ်သည် ။
Socket Information ကိုရယူပါ ။ Socket ၏ local address နှင့် port ကို Socket_etsockname function မှတဆင့်ရယူပါ။
Control Size အရွယ်အစားကိုတွက်ချက်သည် ။ Socket_cMsg_space သည် လိုအပ်သောထိန်းချုပ်မှုမက်ဆေ့ခ်ျနေရာကိုတွက်ချက်ပြီး၎င်း၏အရွယ်အစားကိုထုတ်လုပ်သည်။ ဤနေရာတွင်ကျွန်ုပ်တို့သည် So_RCVBUFF ကိုလက်ခံရရှိသည့်ကြားခံပမာဏကိုရရှိရန်အတွက် SO_RCVBUFF ကို အသုံးပြုသည်။
Socket : Socket ကိုပိတ်ရန် Socket_close function ကိုသုံးပါ။
ဤ socket_etsockname နှင့် socket_cmsg_space ပေါင်းစပ်မှုပေါင်းစပ်မှုကသင့်အားအထူးသဖြင့်အောက်ပါအခြေအနေများတွင်ကွန်ယက်ပရိုဂရမ်တွင် Sockets များနှင့်ပတ်သက်သောအသေးစိတ်အချက်အလက်များကိုပြောင်းလွယ်ပြင်လွယ်ရှိစေနိုင်သည်။
Network Debugging : ၎င်းကို Socket connection များရှာဖွေခြင်း, ဒေသဆိုင်ရာလိပ်စာများနှင့်ဆိပ်ကမ်းများရယူရန်နှင့်ဆက်သွယ်မှုပြ problems နာများကိုဖြေရှင်းရန်ကူညီနိုင်သည်။
ဒေတာစီးဆင်းမှုထိန်းချုပ်မှု - Control of Control of Control of SPAND အရွယ်အစားကိုတွက်ချက်ခြင်းအားဖြင့် developer များကအချက်အလက်ထုတ်လွှင့်မှု၏ထိရောက်မှုနှင့်တည်ငြိမ်မှုကိုသေချာစေရန် developer များကလက်ခံခြင်းနှင့်ပေးပို့ခြင်းကြားခံများကိုထိရောက်စွာစီမံနိုင်သည်။
Socket_etsockname ကိုအသုံးပြုပြီးတဲ့အခါ Socket ကိုအောင်မြင်စွာခညျြနှောငျနိုင်သေချာပါစေ,
Control Message SPOCK ကိုတွက်ချက်သောအခါကွဲပြားခြားနားသော protocols များနှင့်ထိန်းချုပ်မှုမက်ဆေ့ခ်ျအမျိုးအစားများပေါ် မူတည်. ကွဲပြားခြားနားသောအာကာသအရွယ်အစားလိုအပ်နိုင်သည်။ ထို့ကြောင့် မှန်ကန်သော အဆင့်ကို အသုံးပြုရန်သေချာအောင်လုပ်ပါ။