<span><span>Warning: stream_socket_server(): unable to bind to tcp://127.0.0.1:8080 (Reason: Address already in use) in ...
</span></span>
အခြားပရိုဂရမ်များကသိမ်းပိုက်ထားသည့် port သို့မဟုတ်လိပ်စာတစ်ခုသို့ cloam_socket_server ကို အသုံးပြုရန်ကြိုးစားသောအခါဤအမှားသည်များသောအားဖြင့်ဖြစ်သည်။ ဖြေရှင်းချက်နှစ်ခုရှိပါတယ်:
ဆိပ်ကမ်းကိုသိမ်းပိုက်ထားသည့်နေရာကိုစစ်ဆေးပါ။ NetStux (Linux) သို့မဟုတ် LSOF -i: 8080 command ကိုသုံးပါ။
အခြား port တစ်ခုကိုရွေးချယ်ပါ။ အကယ်. ဆိပ်ကမ်းကိုသိမ်းပိုက်ထားသည့် port ကိုသိမ်းပိုက်ပါကအသုံးမပြုရသေးသော port ကိုရွေးချယ်ပါသို့မဟုတ်ထိုဆိပ်ကမ်းကိုသိမ်းပိုက်ထားသော 0 န်ဆောင်မှုကိုရပ်တန့်ပါ။
<span><span>Warning: stream_socket_server(): unable to create socket resource in ...
</span></span>
ဤအမှားသည်စနစ်ကန့်သတ်ချက်များသို့မဟုတ်ခွင့်ပြုချက်ပြ issues နာများနှင့်ဆက်စပ်သောဖြစ်နိုင်သည်။ ဘုံအကြောင်းပြချက်များမှာ -
ခွင့်ပြုချက်မလုံလောက်မှုများ - Linux System များတွင် Root Permits တွင် 1024 အောက်ရှိဆိပ်ကမ်းများသို့ချည်နှောင်ရန် root permits သည်ပိုမိုမြင့်မားသော port နံပါတ်ကိုအသုံးပြုရန်သို့မဟုတ် administrator အခွင့်ထူးများနှင့် script ကိုဖွင့်ရန်ဖြစ်သည်။
System Resource Limit - စနစ်သည်ဖွင့်လှစ်ရန်ဖိုင်ဖော်ပြသည့်ဖိုင်အရေအတွက်ကိုကန့်သတ်ထားနိုင်သည်။ လက်ရှိအကန့်အသတ်ကို ulimit -n command မှတဆင့်ကြည့်ရှုနိုင်ပြီး ulimit -n <number မှတဆင့်ကန့်သတ်ချက်ကိုတိုးမြှင့်နိုင်သည်။
<span><span>Warning: stream_socket_accept(): unable to accept connection in ...
</span></span>
အကယ်. သင်သည်ဆာဗာအရင်းအမြစ်ကိုအောင်မြင်စွာဖန်တီးနိုင်သော်လည်းဆက်သွယ်မှုကိုလက်မခံနိုင်ပါက၎င်းသည်အောက်ပါအကြောင်းပြချက်များဖြစ်နိုင်သည်။
Network Configuration ပြ problem နာ - သင် binding address and port သည်မှန်ကန်ကြောင်းနှင့်ကွန်ယက်ချိတ်ဆက်ထားကြောင်းသေချာအောင်လုပ်ပါ။ အကယ်. ၎င်းသည်ဒေသန္တရဖွံ့ဖြိုးတိုးတက်မှုပတ်ဝန်းကျင်ဖြစ်ပါကဆိပ်ကမ်းကိုပိတ်ဆို့ထားခြင်းမရှိကြောင်းသေချာအောင်လုပ်ပါ။
ပြ problem နာကိုပိတ်ဆို့ခြင်း - ပုံမှန်အားဖြင့် stream_socket_server သည်ပိတ်ဆို့ခြင်းလုပ်ဆောင်ချက်ဖြစ်သည်။ ဆက်သွယ်မှုမရှိပါကစောင့်ဆိုင်းလိမ့်မည်။ ဤပြ problem နာကိုရှောင်ရန်ပိတ်ဆို့ခြင်းမဟုတ်သော mode ကိုသင်အသုံးပြုနိုင်သည်။
<span><span><span class="hljs-variable">$server</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_socket_server</span></span><span>(</span><span><span class="hljs-string">"tcp://127.0.0.1:8080"</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 | STREAM_SERVER_LISTEN);
</span><span><span class="hljs-title function_ invoke__">stream_set_blocking</span></span><span>(</span><span><span class="hljs-variable">$server</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>);
</span></span>
ဤနည်းအားဖြင့်ဆက်သွယ်မှုမရှိလျှင်ပင်အစီအစဉ်ကိုဆက်လက်လုပ်ဆောင်နိုင်သည်။
<span><span>Warning: stream_socket_accept(): connection reset by peer in ...
</span></span>
ဤအမှားသည်များသောအားဖြင့် client သည် connection ပြီးနောက်ဆက်သွယ်မှုကိုချက်ချင်းပိတ်ထားသည့်အခါသို့မဟုတ်ကွန်ယက်ပျက်မှုတစ်ခုရှိသည်။ သင်ကဖြေရှင်းနိုင်သည်:
Capture Connection Concerning Events: client convertions connection များကိုကိုင်တွယ်သည့်အခါချွင်းချက်များကိုကိုင်တွယ်သင့်ပြီးအရင်းအမြစ်များကိုပိတ်ပြီးနောက်အရင်းအမြစ်များကိုထုတ်ပြန်ရန်သေချာစေသင့်သည်။
<span><span><span class="hljs-variable">$client</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_socket_accept</span></span><span>(</span><span><span class="hljs-variable">$server</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$client</span></span><span>) {
</span><span><span class="hljs-comment">// ဆက်သွယ်မှုများပြုပြင်ခြင်း</span></span><span>
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$client</span></span><span>); </span><span><span class="hljs-comment">// ဆက်သွယ်မှုကိုပိတ်ရန်သေချာပါစေ</span></span><span>
}
</span></span>
ဖောက်သည်တည်ငြိမ်မှုကိုသေချာပါစေ။ အမှားတစ်ခုသို့မဟုတ်မမျှော်လင့်သောအကြောင်းပြချက်ကြောင့်ဖောက်သည်သည်ဆက်သွယ်မှုကိုပိတ်ထားခြင်းရှိမရှိအတည်ပြုပါ။ ကွန်ယက်ပြ problems နာများကိုဖြေရှင်းရန်ကွန်ယက် packet ကိုဖမ်းယူခြင်းကဲ့သို့သောကွန်ယက်နှင့်ဆာဗာများအကြားကွန်ယက်အပြန်အလှန်ဆက်သွယ်မှုများကိုကြည့်ရှုနိုင်သည်။
<span><span>Warning: stream_socket_recvfrom(): unable to read from socket resource in ...
</span></span>
သင်ဖောက်သည်ထံမှအချက်အလက်များကိုဖတ်ရန်ကြိုးစားသောအခါဤအမှားသည်များသောအားဖြင့်ဖောက်သည်သည်အချက်အလက်များကိုမပို့ပါသို့မဟုတ်ဆက်သွယ်မှုကိုပိတ်ထားခြင်းကြောင့်ဖြစ်နိုင်သည်။ အဖြေမှာအောက်ပါအတိုင်းဖြစ်သည် -
client အပြုအမူကိုစစ်ဆေးပါ - သုံးစွဲသူသည်အချက်အလက်များကိုပေးပို့ပြီးအချက်အလက်များကိုပေးပို့ပြီးနောက် connection ကိုကြိုတင်မပိတ်ပါနှင့်။
Read typ teadout: client သည်အချက်အလက်များကိုအနှေးနှင့်အမြန်ပေးပို့ရန်သင်မျှော်လင့်ပါကသင်ဖတ်ရှုသည့်အချိန်ကိုသတ်မှတ်နိုင်သည်။
<span><span><span class="hljs-title function_ invoke__">stream_set_timeout</span></span><span>(</span><span><span class="hljs-variable">$client</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>); </span><span><span class="hljs-comment">// 10ဒုတိယအကြိမ်အချိန်</span></span><span>
</span></span>
<span><span>Warning: stream_socket_server(): SSL operation failed with code 1. OpenSSL Error messages:
error:1408F119:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac in ...
</span></span>
SSL ကို stream_socket_server ထဲကို 0 င်ရောက်တဲ့အခါ SSL / TLS-TLS နဲ့သက်ဆိုင်တဲ့အမှားတွေကိုသင်ကြုံတွေ့ရနိုင်တယ်။ ဘုံအကြောင်းပြချက်များမှာ -
လက်မှတ်ပြ problem နာ - SSL Certificate နှင့် private key file ကိုပေးပြီးဖိုင်လမ်းကြောင်းမှန်ကန်ကြောင်းသေချာအောင်လုပ်ပါ။
OpenSSL Configuration ပြ issue နာ - PHP configuration file (php.ini) တွင်သင်၏ PHP တပ်ဆင်မှုနှင့် SSL Support ကိုဖွင့်ထားကြောင်းသေချာပါစေ။
<span><span><span class="hljs-variable">$server</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_socket_server</span></span><span>(</span><span><span class="hljs-string">"ssl://127.0.0.1:443"</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 | STREAM_SERVER_LISTEN, </span><span><span class="hljs-title function_ invoke__">stream_context_create</span></span><span>([
</span><span><span class="hljs-string">'ssl'</span></span><span> => [
</span><span><span class="hljs-string">'local_cert'</span></span><span> => </span><span><span class="hljs-string">'/path/to/cert.pem'</span></span><span>,
</span><span><span class="hljs-string">'local_pk'</span></span><span> => </span><span><span class="hljs-string">'/path/to/private.key'</span></span><span>,
</span><span><span class="hljs-string">'verify_peer'</span></span><span> => </span><span><span class="hljs-literal">false</span></span><span>,
]
]));
</span></span>
ထို့အပြင်သင်လိုအပ်သည့် encryption protocol ကိုထောက်ပံ့ရန် OpenSSL ဗားရှင်းကိုသင်စစ်ဆေးနိုင်သည်။