PHP တွင် Socket_export_Stream () သည်အလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်ဖြစ်သည်။ FWRITE () , stream_socket_socket_sedto (), stream_seeam_selectto () , stream_seeam_selectto () စသည်တို့ကိုစသည်တို့ကိုပိုမိုများပြားသော stream level spream တစ်ခုသို့ society socket extension stream တစ်ခုအဖြစ်ပြောင်းလဲနိုင်သည်။ ဤအသွင်ကူးပြောင်းမှုသည်အထူးသဖြင့် stream_ * seried functions များဖြစ်သောပတ်ဝန်းကျင်တွင်ဖြစ်ရပ်များတွင်ပါ 0 င်သည့်ပတ်ဝန်းကျင်တွင်အထူးကောင်းမွန်သည်။
သို့သော် Socket_Export_stream ()) ကိုအသုံးပြုပြီးနောက် developer များစွာသည် stream_socket_sendto () ကဲ့သို့သောလုပ်ဆောင်ချက်များနှင့်ပေါင်းစပ်ခြင်းနှင့် ပတ်သက်. အချက်အလက်များကိုမည်သို့မှန်ကန်စွာပို့ရမည်နှင့် ပတ်သက်. မေးခွန်းများရှိသည်။ ဤဆောင်းပါးသည်ဤလုပ်ငန်းစဉ်ကိုအသေးစိတ်ခွဲခြမ်းစိတ်ဖြာလိမ့်မည်။
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '0.0.0.0', 12345);
// သေတမ်းစာ socket အရင်းအမြစ်များကိုအသွင်ပြောင်း stream ပစ္စည်းအင်းအား
$stream = socket_export_stream($socket);
ဒီ $ stream သည် ဖိုင်တစ်ခုနှင့်တူသော PHP stream အရင်းအမြစ်ဖြစ်သည်။ ဤအချိန်တွင်ဒေတာအပြောင်းအလဲအတွက် Socket function အစားအစား stream function ကိုသုံးနိုင်သည်။
stream_socket_sendto () ကို များသောအားဖြင့်ဆက်သွယ်မှု protocols မပါဘဲအချက်အလက်များကိုပို့ရန်အသုံးပြုလေ့ရှိသည်။ ပြောင်းလဲထားသော streaming အရင်းအမြစ်များကိုအသုံးပြုသောအခါအချက်များစွာကိုဂရုပြုရန်လိုအပ်သည်။
စီးသည် unbouffered သို့မဟုတ်လက်ဖြင့်လန်းဆန်းစေရမည် ( FFlush ),
လိပ်စာပုံစံသည် Standard URI ပုံစံတွင်ရှိသင့်သည်။
UDP အတွက် destination address ကိုပေးရန်လိုအပ်သည်။
$remote = 'udp://m66.net:12345';
$message = "Hello via stream!";
// မှတ်သား:stream အရေးအသားဖြစ်ရမည်,နှင့်ပစ်မှတ်လိပ်စာမှန်ကန်ရန်လိုအပ်သည်
$bytesSent = stream_socket_sendto($stream, $message, 0, $remote);
if ($bytesSent === false) {
echo "ပေးပို့ခြင်းမအောင်မြင်ပါ。\n";
} else {
echo "အောင်မြင်စွာပို့ခဲ့သည် $bytesSent ဒရယ်。\n";
}
stream_select လုပ်ခြင်း () , စမ်းချောင်းမျိုးစုံ (ဥပမာ socket_export_stroper "ကဲ့သို့သော socket_export_strame) ကဲ့သို့သော) တစ်ချိန်တည်းမှာပင်,
$read = [$stream];
$write = null;
$except = null;
$changed = stream_select($read, $write, $except, 5);
if ($changed > 0) {
$data = fread($stream, 1024);
echo "ဒေတာကိုလက်ခံရရှိခဲ့သည်:$data\n";
}
ဟုတ်ပါတယ်, သင်ကပစ်မှတ်ထားလိပ်စာကိုအတိအလင်းဖော်ပြခြင်းမရှိဘဲ fwite () ကို တိုက်ရိုက်သုံးနိုင်သည်။
fwrite($stream, "Simple write to stream\n");
ဤနည်းလမ်းသည်ဆက်သွယ်မှုကို ဦး စားပေးသော protocols များသို့မဟုတ်ဝေးလံခေါင်သီသော UDP Sockets များအတွက်သင့်တော်ကြောင်းသတိပြုသင့်သည်။
မူရင်း socket ကို PHP Stream သို့ socket_export_stream မှတဆင့် () stream_socke_sendto () , fwoetto () , stream_), stream_se (), stream_), စသည်တို့ကိုအလွယ်တကူအသုံးပြုနိုင်သည်။ အသုံးပြုနေစဉ်အတွင်းသင်သည် Target လိပ်စာပုံစံကိုအာရုံစိုက်ရန်, သယံဇာတ၏ဖတ်ခြင်းနှင့်ရေးရန်အဆင့်အတန်းနှင့် protocol ၏ဝိသေသလက္ခဏာများ (ဥပမာ UDP ချိတ်ဆက်မှုရှိမရှိစသည်) ။ သင့်လျော်သော configuration ပြီးနောက်ဤချဉ်းကပ်မှုသည်ခေတ်မီမြင့်မားသောစွမ်းဆောင်ရည်မြင့်ကွန်ယက်ဆက်သွယ်ရေးအစိတ်အပိုင်းများကိုတည်ဆောက်ရန်အလွန်သင့်တော်သည်။