函式:socket_set_blocking()
適用版本:PHP 4, PHP 5, PHP 7
用法:socket_set_blocking(resource $socket, bool $mode) : bool
說明:該函式用於設定套接字的阻塞模式。
引數:
- $socket:套接字資源,透過socket_create()函式建立。
- $mode:布林值,指定阻塞模式。如果$mode為true,則套接字將被設定為阻塞模式;如果$mode為false,則套接字將被設定為非阻塞模式。
返回值:
- 成功時,返回true。
- 失敗時,返回false。
示例:
// 建立套接字
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "套接字建立失敗!";
exit;
}
// 設定套接字為阻塞模式
if (socket_set_blocking($socket, true) === false) {
echo "設定阻塞模式失敗!";
exit;
}
// 連線到伺服器
$connect = socket_connect($socket, '127.0.0.1', 8080);
if ($connect === false) {
echo "連線伺服器失敗!";
exit;
}
// 傳送資料
$message = "Hello, Server!";
if (socket_write($socket, $message, strlen($message)) === false) {
echo "傳送資料失敗!";
exit;
}
// 接收伺服器響應
$response = socket_read($socket, 1024);
if ($response === false) {
echo "接收資料失敗!";
exit;
}
// 關閉套接字
socket_close($socket);
// 輸出伺服器響應
echo "伺服器響應:".$response;
以上示例展示瞭如何使用socket_set_blocking()函式將套接字設定為阻塞模式。首先,建立套接字並設定為阻塞模式。然後,透過socket_connect()函式連線到伺服器。之後,使用socket_write()函式向伺服器傳送資料,並使用socket_read()函式接收伺服器的響應。最後,使用socket_close()函式關閉套接字。