展示最基礎的 TCP 通訊:伺服器監聽埠、接受連線、讀取資料、回應處理結果、關閉連線;客戶端連線、發送、接收回應。
<?php
set_time_limit(0);
$host = '127.0.0.1';
$port = 1234;
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, $host, $port);
socket_listen($socket, 3);
echo "Server started on $host:$port\n";
while (true) {
$client = socket_accept($socket);
$input = socket_read($client, 1024);
$input = trim($input);
echo "Received: $input\n";
$output = strrev($input) . "\n"; // 反轉字串示範
socket_write($client, $output, strlen($output));
socket_close($client);
}
socket_close($socket);
?>
<?php $host = '127.0.0.1'; $port = 1234; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($socket, $host, $port); $msg = "Hello PHP Socket"; socket_write($socket, $msg, strlen($msg)); $response = socket_read($socket, 1024); echo "Server reply: " . trim($response) . "\n"; socket_close($socket); ?>
php server.phpphp client.php$port 或 lsof -i :1234 找出佔用程序socket_select 或 pcntl_fork 實現並發長度(4字節) + JSON內容 解決黏包