Socket_bind () function ကို coock socket ကိုသတ်သတ်မှတ်မှတ် IP address and port ကို binding in cocket cocket connection address address address ကိုလက်ခံနိုင်အောင်အသုံးပြုသည်။
<span><span><span class="hljs-title function_ invoke__">socket_bind</span></span><span>(</span><span><span class="hljs-variable">$socket</span></span><span>, </span><span><span class="hljs-variable">$address</span></span><span>, </span><span><span class="hljs-variable">$port</span></span><span>);
</span></span>$ Socket : ခညျြနှောငျခံရဖို့လိုအပ်ပါတယ် socket အရင်းအမြစ်။
$ address - ဆာဗာ၏ IP address ( localhost သို့မဟုတ် 0.0.0.0 စသည်) ။ ) ။
$ port : ချည်နှောင်ခံရဖို့ port နံပါတ်။
အကယ်. စည်းနှောင်ခြင်းသည်အောင်မြင်မှုရနိုင်ပါက စစ်မှန်ပါ ။
Socket_bind () သည်အောင်မြင်မှုရှိမရှိရှာဖွေရန်, function ၏ပြန်လာတန်ဖိုးကို ဦး စွာရှင်းလင်းရမည်။ အောင်မြင်မှုအပေါ် စစ်မှန်တဲ့ အောင်မြင်မှုနှင့်ပျက်ကွက်အပေါ် မှားယွင်းသော အပေါ်ပြန်လည်ရောက်ရှိ။ သို့သော်ပြန်လာတန်ဖိုးကိုသာအားကိုးခြင်းသည်မလုံလောက်ပါ။ အသေးစိတ်အချက်အလက်များကိုပိုမိုအသေးစိတ်အချက်အလက်များရရှိရန် Socket_last_Error () ကို ပေါင်းစပ်နိုင်သည်။
Socket_bind ကိုသုံးတဲ့အခါ () , အများအားဖြင့်အဲဒါဟာအောင်မြင်မှုရှိမရှိဆုံးဖြတ်ဖို့သူ့ရဲ့ပြန်လာတန်ဖိုးကိုစစ်ဆေးပါတယ်။ Return Value သည် မှား လျှင်၎င်းသည်စည်းနှောင်မှုမအောင်မြင်ဟုဆိုလိုသည်။
<span><span><span class="hljs-variable">$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-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$socket</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Socket ဖန်တီးမှုပျက်ကွက်: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">socket_strerror</span></span><span>(</span><span><span class="hljs-title function_ invoke__">socket_last_error</span></span><span>());
</span><span><span class="hljs-keyword">exit</span></span><span>;
}
</span><span><span class="hljs-variable">$address</span></span><span> = </span><span><span class="hljs-string">"127.0.0.1"</span></span><span>;
</span><span><span class="hljs-variable">$port</span></span><span> = </span><span><span class="hljs-number">8080</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">socket_bind</span></span><span>(</span><span><span class="hljs-variable">$socket</span></span><span>, </span><span><span class="hljs-variable">$address</span></span><span>, </span><span><span class="hljs-variable">$port</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</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">"Socket binding ပျက်ကွက်: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">socket_strerror</span></span><span>(</span><span><span class="hljs-title function_ invoke__">socket_last_error</span></span><span>(</span><span><span class="hljs-variable">$socket</span></span><span>));
</span><span><span class="hljs-keyword">exit</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Socket အောင်မြင်သောစည်းနှောင်!"</span></span><span>;
}
</span></span>socket_bind () မှားယွင်းသောသတင်းအချက်အလက်များကိုပိုမိုဆိုးရှားလာစေရန် False , Socket_last_Error () ကိုပြန်ပို့သည်။ Socket_last_Error () အမှားကုဒ်တစ်ခုပြန်ပို့သည် ။
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-variable">$error_code</span></span><span> = </span><span><span class="hljs-title function_ invoke__">socket_last_error</span></span><span>(</span><span><span class="hljs-variable">$socket</span></span><span>);
</span><span><span class="hljs-variable">$error_message</span></span><span> = </span><span><span class="hljs-title function_ invoke__">socket_strerror</span></span><span>(</span><span><span class="hljs-variable">$error_code</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"binding ပျက်ကွက်,အမှားကုဒ်:<span class="hljs-subst">$error_code</span></span></span><span>,အမှားသတင်းစကား:</span><span><span class="hljs-subst">$error_message</span></span><span>";
}
</span></span>ဘုံအမှားမက်ဆေ့ခ်ျများမှာ -
အသုံးပြုမှုနှင့်ပြီးသား လိပ်စာ
ခွင့်တောင်းမှုငြင်းဆိုခြင်း
အသုံးပြုမှုနှင့်ပြီးသားလိပ်စာ
အမှားအယွင်း - IP address နှင့် port သည်အခြားဖြစ်စဉ်များဖြင့်ချည်နှောင်ထားသည်။
ဖြေရှင်းချက် - အခြားပရိုဂရမ်များသည် port ကိုအသုံးပြုပြီးသို့မဟုတ်အသုံးပြုသော port နံပါတ်ကိုပြောင်းလဲခြင်းရှိမရှိစစ်ဆေးပါ။
ခွင့်တောင်းမှုငြင်းဆိုခြင်း
အမှားအယွင်း - လက်ရှိအသုံးပြုသူသည် Port (အထူးသဖြင့် 1024 အောက်ရှိ ports များ) ကိုချည်နှောင်ရန်လုံလောက်သောခွင့်ပြုချက်မရှိပါ။
ဖြေရှင်းချက် - အဆင့်မြင့်ဆိပ်ကမ်းကိုသုံးရန်သို့မဟုတ် administrator အခွင့်ထူးများဖြင့် script ကို run ရန်ကြိုးစားပါ။
မမှန်ကန်သောအငြင်းအခုံ
အမှားအယွင်း - IP address သို့မဟုတ် port socket_bind () ကိုဖြတ်သွားသည်။
ဖြေရှင်းချက် - 0 င်လာသည့်လိပ်စာနှင့်ဆိပ်ကမ်းများသည်တရားဝင်ဖြစ်ကြောင်းအတည်ပြုပါ။
ပရိုဂရမ်တွင်သင်စစ်ဆေးလိုပါက butt socket သည်မှန်ကန်နေဆဲဖြစ်စေ, socket_etsockname () ကို အသုံးပြု. Socket_etsockname () ကိုသုံးနိုင်သည်။ ဤလုပ်ဆောင်မှုသည်စည်းနှောင်ထားသောသတင်းအချက်အလက်များကိုပြန်လည်ရောက်ရှိစေပြီးအောင်မြင်သောစည်းနှောင်ခြင်းမရှိပါကပြန်လည်နေရာချထားရေးသည်ဗလာဖြစ်သည်။
<span><span><span class="hljs-variable">$bound_address</span></span><span> = </span><span><span class="hljs-string">''</span></span><span>;
</span><span><span class="hljs-variable">$bound_port</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">socket_getsockname</span></span><span>(</span><span><span class="hljs-variable">$socket</span></span><span>, </span><span><span class="hljs-variable">$bound_address</span></span><span>, </span><span><span class="hljs-variable">$bound_port</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"လိပ်စာမှခညျြနှောငျခညျြနှောငျ <span class="hljs-subst">$bound_address</span></span></span><span> နှင့် ports </span><span><span class="hljs-subst">$bound_port</span></span><span>";
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"套接字binding ပျက်ကွက်"</span></span><span>;
}
</span></span>