လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> stream_socket_recvfrom function ၏အသေးစိတ်အသုံးပြုမှုနည်းလမ်းများနှင့်အဆင့်များမှာအဘယ်နည်း။

stream_socket_recvfrom function ၏အသေးစိတ်အသုံးပြုမှုနည်းလမ်းများနှင့်အဆင့်များမှာအဘယ်နည်း။

gitbox 2025-08-04
<span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?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 &amp;$address = null)
 *
 * parameter ကိုဖော်ပြချက်:
 * - $socket:要从အလယ်ပိုင်း读取数据的Sockets资源。
 * - $length:Bytes ၏အများဆုံးအရေအတွက်ကိုဖတ်ပါ。
 * - $flags:မလုပ်မနေရမဟုတ်သော,အမူအကျင့်ကိုထိန်းချုပ်သောအလံ,ပျက်ကွက်ခြင်း0。
 * - &amp;$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">?&gt;</span></span><span>
</span></span>