查詢

socket_read()函式—用法及示例

「 從套接字接收資料 」


函式名:socket_read()

適用版本:所有版本的PHP

用法:socket_read() 函式用於從套接字接收資料。它可以一次性讀取指定長度的資料,或者讀取直到遇到指定的結束字元為止。

語法:

string socket_read ( resource $socket , int $length [, int $type = PHP_BINARY_READ ] )

引數:

  • $socket:必需,一個有效的套接字資源,透過 socket_create() 或 socket_accept() 函式建立。
  • $length:必需,要讀取的最大位元組數。
  • $type:可選,讀取資料的型別。預設為 PHP_BINARY_READ,表示以二進位制方式讀取資料。也可以指定為 PHP_NORMAL_READ,表示以普通文字方式讀取資料。

返回值:成功時返回讀取的資料(字串型別),失敗時返回 false。

示例:

// 建立一個 TCP/IP 套接字
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// 連線到伺服器
$result = socket_connect($socket, '127.0.0.1', 8080);

// 從套接字中讀取資料(以二進位制方式)
$data = socket_read($socket, 1024);

if ($data === false) {
    // 讀取失敗
    echo "讀取資料失敗:" . socket_strerror(socket_last_error($socket));
} else {
    // 讀取成功
    echo "讀取的資料:" . $data;
}

// 關閉套接字
socket_close($socket);

上述示例中,我們首先建立了一個 TCP/IP 套接字,然後使用 socket_connect() 函式連線到伺服器。接下來,我們使用 socket_read() 函式從套接字中讀取最多 1024 位元組的資料(以二進位制方式)。如果讀取成功,我們列印出讀取到的資料;如果讀取失敗,我們列印出錯誤資訊。

注意:在實際使用中,需要根據具體的業務需求,適當調整引數和處理讀取到的資料。

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