php中如何創(chuàng)建一個(gè)socket服務(wù)器

PHP
小樊
83
2024-09-21 11:21:48
欄目: 云計(jì)算

在PHP中,可以使用socket_create()、socket_bind()socket_listen()等函數(shù)來創(chuàng)建一個(gè)簡單的socket服務(wù)器。下面是一個(gè)示例代碼:

<?php
// 創(chuàng)建socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!$socket) {
    echo "socket_create() failed: " . socket_strerror(socket_last_error()) . "\n";
    exit();
}

// 設(shè)置socket選項(xiàng)
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);

// 綁定地址和端口
$address = "127.0.0.1";
$port = 8080;
socket_bind($socket, $address, $port);

// 開始監(jiān)聽
socket_listen($socket, 3);

echo "Server is listening on $address:$port...\n";

// 接受客戶端連接
$client = socket_accept($socket);
if (!$client) {
    echo "socket_accept() failed.\n";
    exit();
}

// 讀取客戶端發(fā)送的數(shù)據(jù)
$input = socket_read($client, 2048);
echo "Received message: $input\n";

// 向客戶端發(fā)送數(shù)據(jù)
$output = "Hello from server!\n";
socket_write($client, $output);

// 關(guān)閉連接
socket_close($client);
socket_close($socket);
?>

這個(gè)示例代碼創(chuàng)建了一個(gè)簡單的TCP socket服務(wù)器,監(jiān)聽在127.0.0.1:8080。當(dāng)客戶端連接到服務(wù)器時(shí),服務(wù)器會(huì)讀取客戶端發(fā)送的數(shù)據(jù),并發(fā)送一條響應(yīng)消息給客戶端。最后關(guān)閉與客戶端的連接和服務(wù)器監(jiān)聽。

0