<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဤကုဒ်၏ဤအပိုင်းသည်ဆောင်းပါး၏အကြောင်းအရာများနှင့်လုံးဝမသက်ဆိုင်ပါ,သာဥပမာအားဖြင့်သာ</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဒီဆောင်းပါးကိုဖတ်ရန်လှိုက်လှဲစွာကြိုဆိုပါသည်PHPသင်ခန်းစာဆောင်းပါးများ。"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/*
* ဘဲှ့:stream_socket_recvfromအသေးစိတ်အသုံးပြုမှုနည်းလမ်းများနှင့် function ကို၏ခြေလှမ်းများကဘာတွေလဲ။?
*
* တည်နေPHPအလယ်ပိုင်း,stream_socket_recvfromnetwork socket မှဒေတာများကိုလက်ခံရရှိရန်အတွက်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်,များသောအားဖြင့်အတွက်အသုံးပြုသည်UDPသို့မဟုတ်ဆက်သွယ်မှုကင်းရှင်းရေးဆက်သွယ်ရေးဆက်သွယ်ရေး。
* 它可以从指定的Sockets资源အလယ်ပိုင်း读取数据,နှင့်ပေးပို့အဆုံး၏လိပ်စာအချက်အလက်များကိုပြန်ပို့နိုင်ပါတယ်,ကွန်ယက်အချက်အလက်အပြန်အလှန်ဆက်သွယ်မှုကိုနားလည်သဘောပေါက်ရန်အဆင်ပြေသည်。
*
* တစ်、function ကိုအဓိပ္ပါယ်
* int stream_socket_recvfrom(resource $socket, int $length, int $flags = 0, string &$address = null)
*
* parameter ကိုဖော်ပြချက်:
* - $socket:要从အလယ်ပိုင်း读取数据的Sockets资源。
* - $length:Bytes ၏အများဆုံးအရေအတွက်ကိုဖတ်ပါ。
* - $flags:မလုပ်မနေရမဟုတ်သော,အမူအကျင့်ကိုထိန်းချုပ်သောအလံ,ပျက်ကွက်ခြင်း0。
* - &$address:မလုပ်မနေရမဟုတ်သော,ရည်ညွှန်း variable ကိုဖြတ်သန်း,ပေးပို့ခြင်းအဆုံး၏လိပ်စာအချက်အလက်ကိုလက်ခံရရှိရန်အသုံးပြုခဲ့သည်(IPနှင့် ports)。
*
* Value ကိုပြန်သွားပါ:
* ဖတ်နေ Bytes ၏အမှန်တကယ်အရေအတွက်ကိုပြန်ဖတ်,ပျက်ကွက်အပေါ်ပြန်လာfalse。
*
* နှစ်、ခြေလှမ်းများနှင့်ဥပမာများကိုသုံးပါ
*
* 1. ဖန်တီးUDPSockets(ကိုလည်းအသုံးပြုနိုင်ပါတယ်TCPသို့သော်များသောအားဖြင့်recvfromconnectless protocol ကိုသည်)
* 2. 绑定本地地址နှင့် ports,ဒေတာကိုနားထောင်ပါ
* 3. တယ်လီဖုန်းဆက်ခြင်းstream_socket_recvfromဒေတာကိုလက်ခံရရှိသည်
* 4. လက်ခံရရှိဒေတာနှင့်လိပ်စာပေးပို့ပါ
*
* နမူနာကုဒ်:
*/</span>
</span><span><span class="hljs-variable">$socket</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_socket_server</span></span><span>(</span><span><span class="hljs-string">"udp://0.0.0.0:9999"</span></span><span>, </span><span><span class="hljs-variable">$errno</span></span><span>, </span><span><span class="hljs-variable">$errstr</span></span><span>, STREAM_SERVER_BIND);
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$socket</span></span><span>) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"无法ဖန်တီးUDPSockets:<span class="hljs-subst">$errstr</span></span></span><span> (</span><span><span class="hljs-subst">$errno</span></span><span>)");
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"UDPဆာဗာစတင်သည်,စောင့်ရေှာက်9999သငေ်္ဘာဆိပ်ကမ်း...\n"</span></span><span>;
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-literal">true</span></span><span>) {
</span><span><span class="hljs-variable">$buf</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_socket_recvfrom</span></span><span>(</span><span><span class="hljs-variable">$socket</span></span><span>, </span><span><span class="hljs-number">1024</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$peer</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$buf</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဒေတာကိုလက်ခံရရှိသည်失败\n"</span></span><span>;
</span><span><span class="hljs-keyword">break</span></span><span>;
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ထံမှလက်ခံရရှိခဲ့သည် <span class="hljs-subst">$peer</span></span></span><span> ၏အချက်အလက်: </span><span><span class="hljs-subst">$buf</span></span><span>\n";
</span><span><span class="hljs-comment">// လိုအပ်သောအဖြစ် client ကိုတုံ့ပြန်နိုင်ပါတယ်</span></span><span>
</span><span><span class="hljs-variable">$response</span></span><span> = </span><span><span class="hljs-string">"ဒေတာကိုလက်ခံရရှိခဲ့သည်:"</span></span><span> . </span><span><span class="hljs-variable">$buf</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">stream_socket_sendto</span></span><span>(</span><span><span class="hljs-variable">$socket</span></span><span>, </span><span><span class="hljs-variable">$response</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$peer</span></span><span>);
}
<span class="hljs-comment">/*
* သုံး、အသုံးပြုမှုအပေါ်မှတ်စုများ
* - stream_socket_recvfromဆက်သွယ်မှုမရှိသော protocols များအတွက်သင့်တော်သည်UDP,TCPဆက်သွယ်မှု Multi- ရည်ရွယ်ချက်ဖြစ်ပါတယ်stream_socket_recv。
* - ပြန်လာရန်လိုအပ်ပါတယ်falseအခြေအနေ,ပရိုဂရမ်ခြွင်းချက်များကိုရှောင်ပါ。
* - $addressparameters တွေကိုရည်ညွှန်းခြင်းဖြင့်လွန်နေကြသည်,ပေးပို့သူသတင်းအချက်အလက်ရယူရန်လွယ်ကူသည်。
* - ဘယ်အချိန်မှာဝင်လာသောအခါ$lengthအရမ်းကြီးလွန်းတယ်,စွမ်းဆောင်ရည်ကိုထိခိုက်စေနိုင်သည်,အမှန်တကယ်ဒေတာအရွယ်အစားအရသိသင့်သည်。
*
* အကျဉ်းချုပ်:
* stream_socket_recvfromဟုတ်ကဲ့PHPအလယ်ပိုင်း处理UDPpacket ည့်ခံပွဲများအတွက်ဘုံလုပ်ဆောင်ချက်များကို,ပြောင်းလွယ်ပြင်လွယ်သတင်းအချက်အလက်ပေးပို့ခြင်းရရှိသောနိုင်စွမ်း,
* ရိုးရှင်းသောအကောင်အထည်ဖော်မှုအတွက်သင့်တော်သည်UDPဆာဗာသို့မဟုတ်ကွန်ယက်ဆက်သွယ်ရေးလုပ်ဆောင်ချက်များ。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>