လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Socket_Connect ပြီးနောက် Socket_set_Block ကိုအသုံးပြုပြီးမှန်ကန်သောကိုယ်ဟန်အနေအထား

Socket_Connect ပြီးနောက် Socket_set_Block ကိုအသုံးပြုပြီးမှန်ကန်သောကိုယ်ဟန်အနေအထား

gitbox 2025-05-26

1 ။ socket_connect နှင့်ပိတ်ဆို့ခြင်း mode ကိုအကြားဆက်နွယ်မှု

ပုံမှန်အားဖြင့် 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 မှာဖြစ်ပါတယ်ကြောင်းသေချာစေရန်သေချာစေသည်။


2 ။ Socket_set_Block သို့မှန်ကန်သောခေါ်ဆိုမှု၏ဥပမာ

ဆက်သွယ်မှုအောင်မြင်ပြီးနောက်တွင် 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;
?>

3 ။ မှတ်သားခံရဖို့အချက်များ

  • 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 ကို ပိတ်ဆို့ခြင်းနှင့်ပိတ်ဆို့ခြင်းပုံစံဖြင့်ပြုလုပ်နိုင်သည့်အရာများ၌ပြုလုပ်နိုင်သည်။