函式名: socket_send()
適用版本: PHP 4 >= 4.1.0, PHP 5, PHP 7
用法: int socket_send ( resource $socket , string $buf , int $len , int $flags )
說明: socket_send() 函式用於在已連線的套接字上傳送資料。此函式將指定的資料傳送到套接字連線的另一端。
引數:
- $socket:已連線的套接字資源,透過 socket_create() 和 socket_connect() 建立。
- $buf:要傳送的資料,必須是字串型別。
- $len:要傳送的資料長度。
- $flags:可選引數,可以設定為以下常量之一:
- MSG_OOB:傳送帶外資料。
- MSG_EOR:在資料末尾新增一個 EOR (end-of-record) 標記。
- MSG_EOF:傳送一個檔案結束符。
- MSG_DONTROUTE:不使用路由表傳送資料。
返回值:成功時返回傳送的位元組數,失敗時返回 FALSE。
示例:
// 建立套接字
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket_create() failed: " . socket_strerror(socket_last_error()) . "\n";
exit;
}
// 連線到伺服器
$result = socket_connect($socket, '127.0.0.1', 8080);
if ($result === false) {
echo "socket_connect() failed: " . socket_strerror(socket_last_error($socket)) . "\n";
exit;
}
// 傳送資料
$data = "Hello, server!";
$bytesSent = socket_send($socket, $data, strlen($data), 0);
if ($bytesSent === false) {
echo "socket_send() failed: " . socket_strerror(socket_last_error($socket)) . "\n";
exit;
}
echo "Sent $bytesSent bytes to server.\n";
// 關閉套接字
socket_close($socket);
上述示例中,我們首先建立了一個套接字,然後透過 socket_connect() 函式將套接字連線到伺服器。接下來,我們使用 socket_send() 函式傳送了一個字串資料給伺服器。最後,我們關閉了套接字。
請注意,示例中的 IP 地址和埠號僅作為示範,您需要根據實際情況修改為正確的值。