查詢

socket_set_blocking()函式—用法及示例

「 設定套接字的阻塞模式 」


函式: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()函式關閉套接字。

補充糾錯
上一個函式: socket_set_nonblock()函式
下一個函式: socket_shutdown()函式
熱門PHP函式
分享連結