在PHP中,可以使用socket編程來創建網絡通信。以下是一個簡單的PHP Socket服務器和客戶端示例:
服務器端示例:
<?php
// 創建 socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!$socket) {
echo "socket_create() failed: " . socket_strerror(socket_last_error()) . "\n";
exit;
}
// 綁定 socket 到地址和端口
$address = "127.0.0.1";
$port = 12345;
socket_bind($socket, $address, $port);
// 監聽連接
socket_listen($socket);
echo "Server listening on $address:$port...\n";
while (true) {
// 接受客戶端連接
$client = socket_accept($socket);
if (!$client) {
echo "socket_accept() failed: " . socket_strerror(socket_last_error()) . "\n";
continue;
}
// 讀取并輸出客戶端發送的數據
$data = socket_read($client, 1024);
echo "Received from client: $data\n";
// 向客戶端發送數據
$response = "Hello from server!";
socket_write($client, $response);
// 關閉連接
socket_close($client);
}
// 關閉服務器 socket
socket_close($socket);
?>
客戶端示例:
<?php
// 創建 socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!$socket) {
echo "socket_create() failed: " . socket_strerror(socket_last_error()) . "\n";
exit;
}
// 連接到服務器
$address = "127.0.0.1";
$port = 12345;
socket_connect($socket, $address, $port);
// 向服務器發送數據
$message = "Hello from client!";
socket_write($socket, $message);
// 讀取并輸出服務器發送的數據
$data = socket_read($socket, 1024);
echo "Received from server: $data\n";
// 關閉連接
socket_close($socket);
?>
首先運行服務器端代碼,然后運行客戶端代碼。服務器端將監聽來自客戶端的連接,并在接收到連接后發送和接收數據。客戶端將連接到服務器,發送一條消息,然后接收并輸出服務器的響應。