ပုံမှန်အားဖြင့် PHP ရှိ Sockets များသည်ပိတ်ဆို့ခြင်း mode တွင်ရှိပြီး connection_connect ကို call socket_connect ကို calling socket_connect ကို ပိတ်ဆို့လိမ့်မည်။ သို့သော်သင်နောက်ဆက်တွဲဖတ်ရှုခြင်းနှင့်ရေးခြင်းစစ်ဆင်ရေးများကိုဆက်သွယ်ပြီးဆက်သွယ်မှုကိုပိတ်ဆို့ထားရန်သေချာစေလိုပါက Socket_set_Stock ကိုသုံးနိုင်သည်။
သတိပြုသင့်သည်မှာ socket_set_block ကို socket_connect ကိုအကျိုးသက်ရောက်စေရမည်ကိုသတိပြုသင့်သည်။ ဘာဖြစ်လို့လဲဆိုတော့
connection inconnection ကို socket_connect မှပြန်လည်သတ်မှတ်ခြင်းမပြုမီပိတ်ဆို့ခြင်း mode ကို setting လုပ်ခြင်း။
connection ပြီးနောက် setting နောက်ဆက်တွဲစစ်ဆင်ရေးအားလုံးပိတ်ဆို့ခြင်း mode မှာဖြစ်ပါတယ်ကြောင်းသေချာစေရန်သေချာစေသည်။
ဆက်သွယ်မှုအောင်မြင်ပြီးနောက်တွင် Socket_set_Block ကို မည်သို့ခေါ်ဆိုရမည်ကိုပြသည့်ဥပမာပြည့်စုံသောဥပမာတစ်ခုမှာ -
<?php
// a TCP socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
die("socket_create ဆုံးရှုံး: " . socket_strerror(socket_last_error()) . "\n");
}
// ဆာဗာကိုဆက်သွယ်ပါ
$address = 'gitbox.net';
$port = 80;
if (!socket_connect($socket, $address, $port)) {
die("socket_connect ဆုံးရှုံး: " . socket_strerror(socket_last_error($socket)) . "\n");
}
// အောင်မြင်သောဆက်သွယ်မှုပြီးနောက်,ပိတ်ဆို့ခြင်း mode ကို set
if (!socket_set_block($socket)) {
die("socket_set_block ဆုံးရှုံး: " . socket_strerror(socket_last_error($socket)) . "\n");
}
// ယခု socket ပိတ်ဆို့ထားပါတယ်,ဖတ်ပြီးရေးခြင်းစစ်ဆင်ရေးများကိုပြုလုပ်နိုင်သည်
$request = "GET / HTTP/1.1\r\nHost: gitbox.net\r\nConnection: Close\r\n\r\n";
socket_write($socket, $request, strlen($request));
// တုံ့ပြန်မှုကိုဖတ်ပါ
$response = '';
while ($out = socket_read($socket, 2048)) {
$response .= $out;
}
// ရုပ်သိမ်းခြင်း socket
socket_close($socket);
// output ကိုတုံ့ပြန်မှု
echo $response;
?>
Socket_Connect သည် connection ပျက်ကွက်ပြီးနောက်ရှောင်ရှားရန် Socket_Connect ပြီးနောက် Societ_set_Block ကို သေချာအောင်ခေါ်သည်။
Socket_set_Set_block သည် boolean value ကိုပြန်ပေးသည်။
အကယ်. သင်သည် socket_set_sc_block ကို ဆက်သွယ်မှုမပြုပါကဆက်သွယ်မှုစဉ်အတွင်းငွေရေးကြေးရေးခေါ်ဆိုမှုများဖြင့်ပြန်လည်ပေးဆပ်နိုင်ပြီးမမှန်ကန်သောပိတ်ဆို့ခြင်းချိန်ညှိချက်များဖြစ်ပေါ်စေသည်။
PHP ၏ default sococket mode သည်များသောအားဖြင့်ပိတ်ဆို့ခြင်းဖြစ်သော်လည်းအချို့သောအခြေအနေများတွင် ( socket_set_set_nonblock ) တွင်ပိတ်ဆို့ခြင်းသို့ပြန်သွားရန်လိုအပ်သည်။
အချုပ်အားဖြင့်ဆိုရလျှင်, ပိတ်ဆို့ခြင်း mode ကိုအကျိုးသက်ရောက်စေရန်သေချာစွာဆိုလျှင်သော့သည် socket_set_sblock ကို call to socket_connect ကို ပိတ်ဆို့ခြင်းနှင့်ပိတ်ဆို့ခြင်းပုံစံဖြင့်ပြုလုပ်နိုင်သည့်အရာများ၌ပြုလုပ်နိုင်သည်။