PHP တွင် pfsocckopen () သည်တစ် ဦး တည်ဆောက်ရန်အသုံးပြုသောအလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်ဖြစ်သည်။ သမားရိုးကျ fsocckopen () နှင့်နှိုင်းယှဉ်လျှင်၎င်း၏အားသာချက်နှင့်နှိုင်းယှဉ်လျှင်၎င်းသည်တောင်းဆိုမှုများစွာတွင်တူညီသောဆက်သွယ်မှုကိုပြန်လည်သုံးသပ်ခြင်း, အထူးသဖြင့်ဝေးလံခေါင်သီသောဆက်သွယ်မှုများမကြာခဏလိုအပ်သည်။
ဤဆောင်းပါးသည် ptsocckopen ကို မည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ဖော်ပြရန်နှင့်အသုံးပြုနေစဉ်အတွင်းကြိုတင်ကာကွယ်မှုများအပေါ်အာရုံစူးစိုက်မှုများကိုအာရုံစိုက်မည်ကိုအသေးစိတ်ဖော်ပြထားသည်။
ဇာတ်ညွှန်းကွပ်မျက်ခံရပြီးတဲ့နောက်ပွင့်လင်းတဲ့ဆက်သွယ်မှုတစ်ခုကဆက်နွယ်မှုရှိနေဆဲပါ။ ဆိုလိုသည်မှာနောက်ဆက်တွဲဇာတ်ညွှန်းကိုလုပ်ဆောင်သောအခါယခင်ဆက်သွယ်မှုကိုရရှိနိုင်ပါကဆက်သွယ်မှုအသစ်တစ်ခုကိုပြန်လည်ဖွင့်လှစ်မည့်အစားပြန်လည်ဖွင့်မည့်အစားပြန်လည်ဖွင့်လှစ်မည့်အစားပြန်လည်ဖွင့်လှစ်မည့်အစားပြန်လည်ပြုပြင်ခြင်းနှင့်ဆက်သွယ်မှုတည်ဆောက်ခြင်းအတွက်အချိန်ကိုသိမ်းဆည်းမည့်အစားပြန်လည်အသုံးပြုလိမ့်မည်။
$fp = pfsockopen(string $hostname, int $port, int &$errno, string &$errstr, float $timeout);
parameter သည်ဖော်ပြချက်:
$ hostname : IP address address သို့မဟုတ် domain name (ဥပမာ - gitbox.net ) ဖြစ်နိုင်သည့်ပစ်မှတ်အိမ်ရှင်အမည်။
$ port : connection port နံပါတ်။
$ errno : ဆက်သွယ်မှုပျက်ကွက်ပါကအမှားနံပါတ်ကိုပြန်ပို့ပါ။
$ ERRESSSTR : ဆက်သွယ်မှုမအောင်မြင်ပါကအမှားအယွင်းတစ်ခုပြန်ပို့သည်။
$ Timeout : ဆက်သွယ်မှုအချိန်ကုန်များ (စက္ကန့်) ။
ဤတွင် PFSocCkopen ကို သုံး. မ Perseent connection တစ်ခုဖန်တီးရန်ဥပမာတစ်ခုဖြစ်ပါတယ်။
<?php
$host = 'gitbox.net';
$port = 80;
$timeout = 30;
$errno = 0;
$errstr = '';
$fp = pfsockopen($host, $port, $errno, $errstr, $timeout);
if (!$fp) {
echo "ဆက်သွယ်မှုမအောင်မြင်ပါ:$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: gitbox.net\r\n";
$out .= "Connection: Keep-Alive\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
// မခေါ် fclose,ဒီဆက်သွယ်မှုကိုမြဲမြဲချိတ်ဆက်မှုအဖြစ်ထိန်းသိမ်းထားလိမ့်မည်
}
?>
persper ဆက်သွယ်မှု၏ဘဝသံသရာကို PHP မှစီမံသည်
pfsocckopen မှဖွင့်လှစ်ထားသောဆက်သွယ်မှုများကို script ပြီးဆုံးပြီးနောက်ချက်ချင်းမပိတ်နိုင်သော်လည်း PHP ၏မြဲမြဲ connection pool မှစီမံသည်။ တူညီသောအိမ်ရှင်နှင့်ဆိပ်ကမ်းကိုတောင်းခံသောအခါ PHP သည်ဆက်သွယ်မှုကိုပြန်လည်အသုံးပြုရန်ကြိုးစားသည်။
ဆက်သွယ်မှုကိုကိုယ်တိုင်ပိတ်။ မရပါ fcose () ကို pfsocckopen () မှဖန်တီးထားသောဆက်သွယ်မှုကိုပိတ်ရန်မသုံးသင့်ပါ။ ၎င်းသည်မြဲမြဲရောဂါ၏ရည်ရွယ်ချက်ကိုဖျက်ဆီးလိမ့်မည်။
အချိန်တိုအတွင်းတစ်ပြိုင်နက်တည်းဆက်သွယ်မှုများစွာကိုအသုံးပြုခြင်းကိုရှောင်ကြဉ်ပါ။ <br> ဆက်နွယ်သောဆက်သွယ်မှုများအကန့်အသတ်ရှိသောကြောင့်ဆက်သွယ်မှုအရေအတွက်သည်အကန့်အသတ်ဖြင့်သာဖြစ်သောကြောင့်ဆက်သွယ်မှုအရင်းအမြစ်များကိုပင်ပန်းစေနိုင်သည်။
ဆာဗာတွင် Keep- အသက်ရှင်ရန်ထောက်ပံ့ရန်လိုအပ်သည်
အကယ် . ဆာဗာသည် connection ကိုမပံ့ပိုးပါက - ရှင်သန်နေသောဆက်နွယ်မှုကိုဆက်လက်ရှင်သန်ပါ။
တူညီသော 0 န်ဆောင်မှုကိုမကြာခဏတောင်းဆိုသည့် scripts သို့မဟုတ်ရေရှည် script များကို backend လုပ်ပါ ဥပမာအားဖြင့်, စဉ်ဆက်မပြတ်မှတ်တမ်းရေးသားခြင်း, မက်ဆေ့ခ်ျကို queuing, cache synchronization စသည်တို့ကိုကျောထောက်နောက်ခံပြုခြင်း, ptsocckopen () ကို အသုံးပြုခြင်းသည်၎င်း၏အားသာချက်များကိုပိုမိုရောင်ပြန်ဟပ်နိုင်သည်။
0 က်ဘ်ဆာဗာစီမံခန့်ခွဲမှုမူဝါဒ မတူညီသောဝက်ဘ်ဆာဗာများ (apache နှင့် Nginx တို့ကဲ့သို့သော) ကွဲပြားခြားနားသောဆက်သွယ်မှုများကိုပြန်လည်အသုံးပြုခြင်းနည်းလမ်းအမျိုးမျိုးရှိသည်။ ဖြန့်ကျက်နေစဉ်အတွင်းအမှန်တကယ်ပတ်ဝန်းကျင်နှင့်အညီစစ်ဆေးရန်လိုအပ်သည်။
PFSocckopen () သည် PHP တွင်ဝေးလံခေါင်သီသော 0 န်ဆောင်မှုများနှင့်ချိတ်ဆက်ရန်အလွန်ထိရောက်သောနည်းလမ်းဖြစ်ပြီး, သို့သော်ဆက်နွယ်သောဆက်သွယ်မှုများကြောင့်ဖြစ်ပေါ်လာသောသယံဇာတများအသုံးပြုခြင်းသည် "အခမဲ့" မဟုတ်ပါ။ ဤဆက်သွယ်မှုများကိုသင့်တော်စွာစီမံခြင်းနှင့်လျှောက်လွှာ၏အကန့်အသတ်နှင့်အတိုင်းအတာအတိုင်းအတာကိုနားလည်ခြင်းသည်သူတို့၏အားသာချက်များကိုမြှင့်တင်ရန်သော့ချက်ဖြစ်သည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် ptsocckopen ကို အသုံးပြုသောအခါ connection pools, အချိန်ကုန်ချိန်ညှိချက်များနှင့်သက်ဆိုင်မှု၏တည်ငြိမ်မှုနှင့်သက်ဆိုင်မှု၏စွမ်းဆောင်ရည်ကိုသေချာစေရန်ဆာဗာ၏ဆက်သွယ်မှုအထောက်အကူပြုမဟာဗျူဟာကဲ့သို့သောအချက်များကိုဂရုပြုရမည်။