函式名: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() 關閉套接字,以釋放資源。