<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဤအပိုင်းသည်ဆောင်းပါး၏အကြောင်းအရာနှင့်မသက်ဆိုင်ပါ,မဆိုနိုင်ပါတယ် PHP Code Page</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-variable">$time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y-m-d H:i:s"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"လက်ရှိအချိန်:<span class="hljs-subst">$time</span></span></span><span>\n";
</span><span><span class="hljs-variable">$randomNumber</span></span><span> = </span><span><span class="hljs-title function_ invoke__">rand</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ကျပန်းနံပါတ်မျိုးဆက်:<span class="hljs-subst">$randomNumber</span></span></span><span>\n";
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// စာသားအပိုင်း:အကေြာင်း socket_clear_error တည်နေ UDP နှင့် TCP Sockets အတွက်အသုံးပြုမှုအတွက်ကွဲပြားခြားနားမှု</span></span><span>
<span class="hljs-comment">/**
* ဘဲှ့:socket_clear_errorတည်နေUDPနှင့်TCPSockets အတွက်အသုံးပြုမှုအတွက်ကွဲပြားခြားနားမှု
*
* PHP ထောက်ပံ့ socket_clear_error() လုပ်ဆောင်ချက်,သတ်မှတ်ထားသော socket ပေါ်တွင်အမှားအယွင်းကိုရှင်းလင်းရန်အသုံးပြုခဲ့သည်,နှင့်ရှင်းလင်းရေးမတိုင်မီအမှားကုဒ်ပြန်ပို့ပါ。
* 它常နှင့် socket_last_error() နှင့်အတူသုံးပါ,အမှားကိုင်တွယ်ခြင်းနှင့် debugging သည်。
*
* UDP(User Datagram Protocol)နှင့် TCP(Transmission Control Protocol)တည်နေ网络通信模型上有显著差异,
* ထိုကေြာင့် socket_clear_error() အသုံးပြုမှုအခြေအနေများနှင့်ဖျော်ဖြေပွဲများသည်လည်းကွဲပြားခြားနားသည်。
*
* 1. TCP socket ၏အင်္ဂါရပ်များ
* - ဆက်သွယ်မှု -oriented:တည်နေ通信前需要建立连接(သုံးလက်ကိုင်ဖုန်း)。
* - ယုံကြည်စိတ်ချရသောဂီယာ:packets တွေကိုဆုံးရှုံးသွားသောအခါအလိုအလျောက် retransmit。
* - အမှားရှင်းပါတယ်:အမှားအယွင်းများပေးပို့ခြင်းသို့မဟုတ်လက်ခံခြင်းများကိုများသောအားဖြင့်ပြန်ကျွေးမွေးမည်。
*
* တည်နေ TCP socket ထဲမှာ,တစ် ဦး ရေးရေးပျက်ကွက်ဖြစ်ပေါ်လျှင်、ထိုကဲ့သို့သောဆက်သွယ်မှုပြတ်တောက်သို့မဟုတ်အချိန်ကိုဖတ်ရှုခြင်းကဲ့သို့သောပြ issues နာများ,
* socket_last_error() သတ်သတ်မှတ်မှတ်အမှားကုဒ်ကိုပြန်လာလိမ့်မည်。အသုံးပြု socket_clear_error() ဤအမှားကုဒ်များကိုရှင်းလင်းနိုင်ပါသည်,
* နောက်ဆက်တွဲစစ်ဆင်ရေးများအတွက်စင်ကြယ်သောပြည်နယ်ထောက်ပံ့ပေးသည်。များသောအားဖြင့်အတွက်အသုံးပြုသည်:
* - ဆက်သွယ်မှုခြွင်းချက်ဖမ်းပြီးနောက်ထပ်ကြိုးစားပါ
* - သန့်ရှင်းရေးလုပ်သည် socket လာမည့်ဆက်သွယ်မှုကိုထိခိုက်သောကျန်ရစ်အမှားများကိုရှောင်ရှားရန်အခြေအနေ
*
* 2. UDP socket ၏အင်္ဂါရပ်များ
* - ဆက်သွယ်မှုမရှိပါ:ဒေတာများကိုမပို့မီတရားဝင်ဆက်သွယ်မှုမရှိပါ。
* - 不ယုံကြည်စိတ်ချရသောဂီယာ:packets တွေကိုဆုံးရှုံးသို့မဟုတ်အမိန့်ထဲကဖြစ်နိုင်သည်,အဆိုပါသဘောတူညီချက်ကိုယ်တိုင်ပေးပို့အာမခံမထားဘူး。
* - ကန့်သတ်အမှားတုံ့ပြန်ချက်:ကိစ္စရပ်အများစုတွင်ရှုံးနိမ့်ခြင်း၏တိကျသောအမှားကိုတိုက်ရိုက်မရနိုင်ပါ။。
*
* တည်နေ UDP socket ထဲမှာ,ပေးပို့ခြင်းပျက်ကွက်လျှင်ပင်(ဥပမာအားဖြင့်ပစ်မှတ်သည်မရနိုင်ပါ),များစွာသောစနစ်များသည်အမှားအယွင်းများကိုခြေစွပ်များသို့ချက်ချင်းပြန်ပို့ခြင်းမပြုပါ。
* ထိုကေြာင့် socket_last_error() မကြာခဏပြန်လာ 0,或者仅တည်နေ极少数情况(ဒေသတွင်းကွန်ယက် interface မှားသည်ဆိုပါက)အမှားကုဒ်ပြန်ပို့သည်。
* မှန်သော UDP Socket Call socket_clear_error() 的效果也相မှန်သော有限,အဓိကအားဖြင့်အသုံးပြုခဲ့သည်:
* - သန့်ရှင်းရေးလုပ်သည်本地套接字状态
* - သေချာအောင်လုပ်ပါ socket_last_error() သန့်ရှင်းရေး status ကိုပြန်သွားပါ,အမှားကိုင်တွယ်မှုကိုင်တွယ်ဖြေရှင်းအမှား unify ရန်လွယ်ကူသည်
*
* 3. အသုံးပြု示例
*/</span>
</span><span><span class="hljs-variable">$tcp_socket</span></span><span> = </span><span><span class="hljs-title function_ invoke__">socket_create</span></span><span>(AF_INET, SOCK_STREAM, SOL_TCP);
</span><span><span class="hljs-variable">$udp_socket</span></span><span> = </span><span><span class="hljs-title function_ invoke__">socket_create</span></span><span>(AF_INET, SOCK_DGRAM, SOL_UDP);
</span><span><span class="hljs-comment">// TCP ဆက်သွယ်မှုဥပမာ</span></span><span>
@</span><span><span class="hljs-title function_ invoke__">socket_connect</span></span><span>(</span><span><span class="hljs-variable">$tcp_socket</span></span><span>, </span><span><span class="hljs-string">"127.0.0.1"</span></span><span>, </span><span><span class="hljs-number">8080</span></span><span>);
</span><span><span class="hljs-variable">$tcp_error_before</span></span><span> = </span><span><span class="hljs-title function_ invoke__">socket_last_error</span></span><span>(</span><span><span class="hljs-variable">$tcp_socket</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">socket_clear_error</span></span><span>(</span><span><span class="hljs-variable">$tcp_socket</span></span><span>);
</span><span><span class="hljs-variable">$tcp_error_after</span></span><span> = </span><span><span class="hljs-title function_ invoke__">socket_last_error</span></span><span>(</span><span><span class="hljs-variable">$tcp_socket</span></span><span>);
</span><span><span class="hljs-comment">// UDP ဥပမာ</span></span><span>
@</span><span><span class="hljs-title function_ invoke__">socket_sendto</span></span><span>(</span><span><span class="hljs-variable">$udp_socket</span></span><span>, </span><span><span class="hljs-string">"ဒေတာကိုစမ်းသပ်"</span></span><span>, </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-string">"ဒေတာကိုစမ်းသပ်"</span></span><span>), </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-string">"127.0.0.1"</span></span><span>, </span><span><span class="hljs-number">8081</span></span><span>);
</span><span><span class="hljs-variable">$udp_error_before</span></span><span> = </span><span><span class="hljs-title function_ invoke__">socket_last_error</span></span><span>(</span><span><span class="hljs-variable">$udp_socket</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">socket_clear_error</span></span><span>(</span><span><span class="hljs-variable">$udp_socket</span></span><span>);
</span><span><span class="hljs-variable">$udp_error_after</span></span><span> = </span><span><span class="hljs-title function_ invoke__">socket_last_error</span></span><span>(</span><span><span class="hljs-variable">$udp_socket</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"TCP 错误码သန့်ရှင်းရေးလုပ်သည်前:<span class="hljs-subst">$tcp_error_before</span></span></span><span>, သန့်ရှင်းရေးလုပ်သည်后:</span><span><span class="hljs-subst">$tcp_error_after</span></span><span>\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"UDP 错误码သန့်ရှင်းရေးလုပ်သည်前:<span class="hljs-subst">$udp_error_before</span></span></span><span>, သန့်ရှင်းရေးလုပ်သည်后:</span><span><span class="hljs-subst">$udp_error_after</span></span><span>\n";
<span class="hljs-comment">/**
* အကျဉ်းချုပ်:
* - TCP 套接字的错误状态通常နှင့်连接可靠性直接相关,socket_clear_error() 可以有效သန့်ရှင်းရေးလုပ်သည်这些错误。
* - UDP socket အမှားအခြေအနေတုံ့ပြန်ချက်ကန့်သတ်သည်,socket_clear_error() အဓိကအားဖြင့်အသုံးပြုခဲ့သည်保持一致的错误处理机制。
* - တည်နေ实际开发中,မှန်သော TCP နှင့် UDP အသုံးပြု socket_clear_error() အားလုံးအဓိပ္ပါယ်ရှိသော,ဒါပေမဲ့ TCP အဆိုပါအကျိုးသက်ရောက်မှုပိုမိုသိသာသည်。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>