လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> client_set_set_block application ၏ဥပမာ

client_set_set_block application ၏ဥပမာ

gitbox 2025-05-27

PHP PHP တွင် PHP တွင် processing network သည်အခြေခံနှင့်အရေးကြီးသောအကြောင်းအရာများဖြစ်သည်။ Socket_set_Stock function သည် socketetets များတွင်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ၎င်းကိုပိတ်ဆို့ခြင်း socket ၏ပိတ်ဆို့ခြင်း mode ကိုသတ်မှတ်ရန်အသုံးပြုသည်။ ဤဆောင်းပါးသည် client_set_ScoCkBlock ၏အခန်းကဏ် function ကို အသုံးပြု. client client client converge လုပ်ငန်းစဉ်တွင် function ကိုအာရုံစိုက်ပြီး၎င်း၏အသုံးပြုမှုကိုအမှန်တကယ်ဥပမာကုဒ်မှတဆင့်ရှင်းပြပါလိမ့်မည်။


1 ။ socket_set_sc.block function ကိုနိဒါန်း

သတ်မှတ်ထားသော socket ကို blocking mode ကိုသတ်မှတ်ရန် socket_set_sblock function ကိုအသုံးပြုသည်။ Blocking Mode သည်စာဖတ်ခြင်းနှင့်အရေးယူခြင်းလုပ်ငန်းများလုပ်ဆောင်သောအခါအချက်အလက်များကိုယာယီမရနိုင်ပါကအချက်အလက်များကိုရရှိနိုင်ပါကသို့မဟုတ်လည်ပတ်မှုပြီးစီးသည်အထိ function ကိုစောင့်ဆိုင်းလိမ့်မည်။

Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 bool socket_set_block ( resource $socket )
  • setting mode လိုအပ်သော $ socket : socket အရင်းအမြစ်။

  • Return Value သည် Boolean ဖြစ်ပြီးမှန်ကန်စွာအောင်မြင်နိုင်လျှင်ချိန်ညှိမှုသည် မှန်ကန် ပြီးမှ မှားယွင်းစွာ ပြန်ပို့သည်။

အတော်လေး, function_set_set_nonblock တစ်ခုလည်းရှိပါသည်။


2 ။ client connection အတွက်ပိတ်ဆို့ခြင်း mode ကို၏အခန်းကဏ်။

client တစ်ခုသည် socket မှတစ်ဆင့်ဆာဗာသို့ 0 င်ရောက်သောအခါ၎င်းသည်များသောအားဖြင့် Socket ကိုအောင်မြင်စွာတည်ဆောက်ရန်သို့မဟုတ်ဆာဗာကိုအချက်အလက်များကိုပြန်ပို့ရန်စောင့်ဆိုင်းရန်စောင့်ဆိုင်းရန်လိုအပ်သည်။ ပိတ်ဆို့ခြင်း mode သည် client ၏ socket ခေါ်ဆိုမှုကိုအလိုအလျောက်လှည့်ပတ်သည်။

ဥပမာအားဖြင့်, ပိတ်ဆို့ခြင်း mode မှာဆိုရင် call socket_connect ဆိုရင် function ဟာ connection ကိုအောင်မြင်တဲ့ပရိုဂရမ်ကိုပိတ်ဆို့လိမ့်မယ်။

အချို့သောအခြေအနေများတွင်ပိတ်ဆို့ခြင်း mode ကိုမသုံးပါကဆက်သွယ်မှုဖြစ်စဉ်သည်ရှုပ်ထွေးလာလိမ့်မည်။


3 ။ လက်တွေ့ကျတဲ့ဥပမာကိုသုံးပါ

Socket_set_ScoChion function ကိုအသုံးပြုပြီး socket ကိုပိတ်ဆို့ရန် socket ကိုမည်သို့ပိတ်ထားရမည်ကိုပြသသည့်ရိုးရှင်းသော PHP ဖောက်သည်တစ် ဦး ဖြစ်သည်။

 <?php
// ဖန်တီးTCPSockets
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    die("ဖန်တီးSockets失败: " . socket_strerror(socket_last_error()));
}

// mode ကိုပိတ်ဆို့ဖို့သတ်မှတ်ထားပါ,နောက်ဆက်တွဲစစ်ဆင်ရေးများပြီးစီးလိမ့်မည်ဟုသေချာပါစေ
if (!socket_set_block($socket)) {
    die("ပိတ်ဆို့ခြင်း mode ကို set မအောင်မြင်");
}

// ဆာဗာကိုဆက်သွယ်ပါ,ဆာဗာလိပ်စာအတွက်gitbox.netအမှန်တကယ်ဒိုမိန်းအမည်အစား,ဆိပ်ကမ်းဖြစ်ပါတယ်80
$server = 'gitbox.net';
$port = 80;
if (!socket_connect($socket, $server, $port)) {
    die("ဆာဗာကိုဆက်သွယ်ပါ失败: " . socket_strerror(socket_last_error($socket)));
}

// ဆောက်လုပ်ပုံHTTPဒေတာတောင်းဆိုမှုကို
$request = "GET / HTTP/1.1\r\n";
$request .= "Host: $server\r\n";
$request .= "Connection: Close\r\n\r\n";

// တောင်းဆိုမှုကိုပို့ပါ
socket_write($socket, $request, strlen($request));

// တုံ့ပြန်မှုကိုဖတ်ပါ
$response = '';
while ($out = socket_read($socket, 2048)) {
    $response .= $out;
}

// 关闭Sockets
socket_close($socket);

// output တုံ့ပြန်မှုအကြောင်းအရာ
echo $response;
?>