温馨提示×

php的socket编程怎样实现

PHP
小樊
83
2024-10-17 20:56:06
栏目: 编程语言

在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);
?>

首先运行服务器端代码,然后运行客户端代码。服务器端将监听来自客户端的连接,并在接收到连接后发送和接收数据。客户端将连接到服务器,发送一条消息,然后接收并输出服务器的响应。

0