PHP PHP တွင် PHP တွင် processing network သည်အခြေခံနှင့်အရေးကြီးသောအကြောင်းအရာများဖြစ်သည်။ Socket_set_Stock function သည် socketetets များတွင်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ၎င်းကိုပိတ်ဆို့ခြင်း socket ၏ပိတ်ဆို့ခြင်း mode ကိုသတ်မှတ်ရန်အသုံးပြုသည်။ ဤဆောင်းပါးသည် client_set_ScoCkBlock ၏အခန်းကဏ် function ကို အသုံးပြု. client client client converge လုပ်ငန်းစဉ်တွင် 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 တစ်ခုလည်းရှိပါသည်။
client တစ်ခုသည် socket မှတစ်ဆင့်ဆာဗာသို့ 0 င်ရောက်သောအခါ၎င်းသည်များသောအားဖြင့် Socket ကိုအောင်မြင်စွာတည်ဆောက်ရန်သို့မဟုတ်ဆာဗာကိုအချက်အလက်များကိုပြန်ပို့ရန်စောင့်ဆိုင်းရန်စောင့်ဆိုင်းရန်လိုအပ်သည်။ ပိတ်ဆို့ခြင်း mode သည် client ၏ socket ခေါ်ဆိုမှုကိုအလိုအလျောက်လှည့်ပတ်သည်။
ဥပမာအားဖြင့်, ပိတ်ဆို့ခြင်း mode မှာဆိုရင် call socket_connect ဆိုရင် function ဟာ connection ကိုအောင်မြင်တဲ့ပရိုဂရမ်ကိုပိတ်ဆို့လိမ့်မယ်။
အချို့သောအခြေအနေများတွင်ပိတ်ဆို့ခြင်း mode ကိုမသုံးပါကဆက်သွယ်မှုဖြစ်စဉ်သည်ရှုပ်ထွေးလာလိမ့်မည်။
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;
?>