查詢

socket_sendto()函式—用法及示例

「 將資料傳送到指定的遠端地址 」


函式名:socket_sendto()

適用版本:PHP 4 >= 4.1.0, PHP 5, PHP 7

用法:socket_sendto(resource $socket, string $data, int $length, int $flags, string $address [, int $port = 0]) : int|false

說明: socket_sendto() 函式用於將資料傳送到指定的遠端地址。

引數:

  • $socket:必需,一個有效的套接字資源,由 socket_create() 建立。
  • $data:必需,要傳送的資料。
  • $length:必需,要傳送的資料長度。
  • $flags:可選,可用於調整傳送行為的標誌,預設為 0。
  • $address:必需,目標地址。
  • $port:可選,目標埠,預設為 0。

返回值:

  • 如果成功傳送資料,則返回傳送的位元組數。
  • 如果發生錯誤,則返回 false,並可以透過呼叫 socket_last_error() 獲取錯誤程式碼。

示例:

// 建立套接字
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);

// 目標地址和埠
$address = '127.0.0.1';
$port = 1234;

// 要傳送的資料
$data = 'Hello, server!';

// 傳送資料到指定地址
if (socket_sendto($socket, $data, strlen($data), 0, $address, $port) === false) {
    echo "傳送資料失敗: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "成功傳送了 " . strlen($data) . " 位元組的資料到 $address:$port\n";
}

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

注意事項:

  • 在使用 socket_sendto() 函式之前,必須先透過 socket_create() 建立一個套接字。
  • 請確保傳遞正確的目標地址和埠,以確保資料傳送到正確的目標。
  • 如果傳送失敗,可以透過呼叫 socket_last_error() 獲取錯誤程式碼,並使用 socket_strerror() 將錯誤程式碼轉換為可讀的錯誤資訊。
  • 在完成傳送後,應使用 socket_close() 關閉套接字,以釋放資源。
補充糾錯
上一個函式: socket_setopt()函式
下一個函式: socket_sendmsg()函式
熱門PHP函式
分享連結