function name: socket_set_nonblock ()
သက်ဆိုင်သောဗားရှင်း - PHP 4> = 4.1.0, PHP 5, PHP 7
အသုံးပြုမှု: Socket_set_nonBlock (အရင်းအမြစ် $ socket)
function ကိုဖော်ပြချက် - Socket_set_set_setonblock () function ကို function ကို mode ကို mode အဖြစ်မှတ်သားထားတယ်, ဆိုလိုတာကဒေတာကိုဖတ်နေတာနဲ့ရေးတဲ့အခါလုပ်ငန်းစဉ်ကမပိတ်ထားဘူး။
Parametermer
ပြန်လာတန်ဖိုး - အောင်မြင်မှုအပေါ်စစ်မှန်တဲ့ပြန်လာခြင်းနှင့်ပျက်ကွက်အပေါ်မှားယွင်းသော။
ဥပမာ -
<?php // 创建套接字$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); // 设置套接字为非阻塞模式if (socket_set_nonblock($socket)) { echo "套接字设置为非阻塞模式成功!\n"; } else { echo "套接字设置为非阻塞模式失败!\n"; } // 连接到服务器if (socket_connect($socket, '127.0.0.1', 8080) === false) { // 非阻塞模式下,连接可能会立即返回失败$error = socket_last_error($socket); if ($error != SOCKET_EINPROGRESS && $error != SOCKET_EALREADY) { echo "连接服务器失败:" . socket_strerror($error) . "\n"; } else { echo "连接正在进行中...\n"; } } // 读取数据$data = socket_read($socket, 1024); if ($data === false) { // 非阻塞模式下,如果没有数据可读取,会立即返回false $error = socket_last_error($socket); if ($error != SOCKET_EAGAIN) { echo "读取数据失败:" . socket_strerror($error) . "\n"; } else { echo "没有可读取的数据。\n"; } } // 写入数据$message = "Hello, Server!"; if (socket_write($socket, $message, strlen($message)) === false) { // 非阻塞模式下,如果无法立即写入数据,会立即返回false $error = socket_last_error($socket); if ($error != SOCKET_EAGAIN) { echo "写入数据失败:" . socket_strerror($error) . "\n"; } else { echo "无法立即写入数据。\n"; } } // 关闭套接字socket_close($socket); ?>
အထက်ပါဥပမာတွင် Socket_set_set_setonBlock () function ကိုသုံးပြီး socket_setonblock () function ကိုသုံးပါ။ နောက်တော့ဆာဗာကိုချိတ်ဆက်ဖို့ကြိုးစားတယ်။ ဆက်သွယ်မှုမအောင်မြင်ပါက connection သည်အမှားကုဒ်အပေါ် အခြေခံ. တိုးတက်မှုရှိ, မရှိဆုံးဖြတ်မည်ကိုကျွန်ုပ်တို့ဆုံးဖြတ်ပါမည်။ ထို့နောက်ကျွန်ုပ်တို့သည်အချက်အလက်များကိုဖတ်ရန်ကြိုးစားသည်။ ဖတ်လို့မရတဲ့ဒေတာမရှိဘူးဆိုရင်အမှားကုဒ်အပေါ်အခြေခံပြီးစာဖတ်ဖို့အချက်အလက်မရှိဘူးလားဆိုတာကျွန်တော်တို့ဆုံးဖြတ်လိမ့်မယ်။ နောက်ဆုံးအနေနဲ့ဒေတာကိုရေးဖို့ကြိုးစားတယ်။ ဒေတာများကိုချက်ချင်းရေးသား။ မရပါကအမှားကုဒ်အပေါ် အခြေခံ. ၎င်းကိုချက်ချင်းရေးသား။ မရသောစာစောင်မရေးနိုင်, နောက်ဆုံးတော့ socket ကိုပိတ်လိုက်တယ်။
ပိတ်ဆို့ခြင်းမရှိသော mode တွင်အချို့သောစစ်ဆင်ရေးများသည်စောင့်ဆိုင်းနေသည့်အစားချက်ချင်းပြန်လာနိုင်သည်ကိုသတိပြုပါ။ ထို့ကြောင့်, Return Value သို့မဟုတ်အမှားကုဒ်အပေါ် အခြေခံ. သက်ဆိုင်ရာအခြေအနေကိုသင်ကိုင်တွယ်ရန်လိုအပ်သည်။