PHP Network Programming တွင် Socket_ * စီးရီးလုပ်ဆောင်ချက်များသည် developer များကိုအခြေခံကွန်ယက်ဆက်သွယ်ရေးစွမ်းရည်များနှင့်အတူ developer များကိုပေးသည်။ stream_socket_ * series function များကိုပိုမိုအဆင့်မြင့်ပြီးအသုံးပြုရန်လွယ်ကူသော်လည်းအချို့သောအခြေအနေများတွင်ထိန်းချုပ်နိုင်သောလိုအပ်ချက်များပိုမိုများပြားသည် ။ ဤဆောင်းပါးသည် socket_export_stream မှတဆင့် socket_export_stream မှတဆင့် socket_export_stream မှတဆင့် client_export_stream သို့ပြောင်းလဲရန်နှင့် client နှင့် server အကြားနှစ်လမ်းသွားဆက်သွယ်ရေးယန္တရားကိုသိရှိနိုင်သည်။
Socket Data () နှင့် fwite () fwe () () fword () () () ( ) () () () fwice () () () () () () () () () () () fwice () ကို သုံးရန်အတွက် Socket_export အရင်းအမြစ်များကို stream အရင်းအမြစ်များအဖြစ်တင်ပို့ရန် Socket_export_Stream ဖြစ်သည်။ ဤချဉ်းကပ်မှုသည် API ကိုအသုံးပြုခြင်းလွယ်ကူခြင်းနှင့်အတူအခြေခံ socket ၏ပြောင်းလွယ်ပြင်လွယ်ကိုပေါင်းစပ်ထားသည်။
stream socket_export_stream(Socket $socket): resource|false
fopen , stream_select ကဲ့သို့သောလုပ်ဆောင်မှုများနှင့် တွဲဖက် . အလုပ်လုပ်ရန်အသုံးပြုနိုင်သည့်အမျိုးအစား စီး ၏အရင်းအမြစ်တစ်ခုသို့ပြန်သွားသည်။
Socket_create () မှတဆင့် TCP Socket ကိုဖန်တီးပြီး၎င်းကိုဒေသခံလိပ်စာနှင့်ဆိပ်ကမ်းသို့ချိတ်ထားသည်။
$serverSocket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($serverSocket, '0.0.0.0', 9501);
socket_listen($serverSocket);
echo "ဆာဗာစတင်သည်,ဆိပ်ကမ်းကိုနားထောင်ပါ 9501...\n";
ဆာဗာသည် client connection တောင်းဆိုမှုများတောင်းဆိုမှုများကိုပိတ်ပင်ထားပြီး connections connection အရင်းအမြစ်များကိုစာဖတ်နိုင်သည့်အရာများသို့တင်ပို့သည်။
while (true) {
$clientSocket = socket_accept($serverSocket);
if ($clientSocket === false) {
echo "ဆက်သွယ်မှုကိုလက်ခံရန်ပျက်ကွက်ခဲ့သည်\n";
continue;
}
$clientStream = socket_export_stream($clientSocket);
if ($clientStream === false) {
echo "ထုတ်ကုန် stream ဆုံးရှုံး\n";
socket_close($clientSocket);
continue;
}
fwrite($clientStream, "မှကြိုဆိုပါသည် m66.net ဆာဆာ\n");
while (!feof($clientStream)) {
$data = fgets($clientStream);
if ($data === false) break;
echo "ဖောက်သည်ကပြောပါတယ်: $data";
fwrite($clientStream, "မင်းပြောတာက:$data");
}
fclose($clientStream);
socket_close($clientSocket);
}
0 န်ဆောင်မှုခံယူသူသည် society server သို့ချိတ်ဆက်ရန် Socket_create_stream ကို အသုံးပြု. ဒေတာများကိုဖတ်ရန်နှင့်ရေးရန် socket_export_stream ကို အသုံးပြုသည်။
$client = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($client, 'm66.net', 9501);
$stream = socket_export_stream($client);
if ($stream === false) {
echo "ထုတ်ကုန် stream ဆုံးရှုံး\n";
exit(1);
}
echo fgets($stream); // ကြိုဆိုပါတယ်မက်ဆေ့ခ်ျကိုလက်ခံရရှိသည်
fwrite($stream, "မင်္ဂလာပါ,ဆာဆာ!\n");
echo fgets($stream); // ECHO ကိုဖတ်ပါ
fclose($stream);
socket_close($client);
Code ကို code : The Stream Interface သည် Socket Data Data ၏ဖတ်ရန်နှင့်ရေးရန်ဖြစ်စဉ်ကိုရိုးရှင်းလွယ်ကူစေသည်။
မြင့်မားစွာလိုက်ဖက်ခြင်း - ၎င်းသည် stream_seen_set_set_blocking စ သည့် လုပ်ဆောင်ချက်များကို အသုံးပြု. အသုံးပြုနိုင်သည်။
Bidirectional ဆက်သွယ်ရေးဆိုသည်မှာသဘာဝနှင့်ချောမွေ့သည် - ကွင်းဆက်စာဖတ်ခြင်းနှင့်ရေးသားခြင်းဖြင့်အချိန်မှန်တုံ့ပြန်မှုကိုရနိုင်သည်။
Socket_Export_stream ကို ချိတ်ဆက်ထားသော sockets များအတွက်သာအသုံးပြုနိုင်သည်။
အသုံးပြုပြီးနောက်အရင်းအမြစ်ယိုစိမ့်မှုကိုကာကွယ်ရန်မြစ်ချောင်းများနှင့် socket ကိုပိတ်ရန်လိုအပ်သည်။
ကွန်ယက်ဆက်သွယ်ရေးသည်ပိတ်ဆို့ခြင်းသို့မဟုတ်ပိတ်ဆို့ခြင်းကိုရှောင်ရှားရန်ခြွင်းချက်ကိုင်တွယ်ခြင်းနှင့်အချိန်ကုန်ထိန်းချုပ်မှုကိုစဉ်းစားသင့်သည်။