• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    基于PHP实现一个简单的http服务器

    发布者: 浪子 | 发布时间: 2025-6-14 13:15| 查看数: 82| 评论数: 0|帖子模式

    在 PHP 中,你可以使用
    1. socket
    复制代码
    函数编写一个简单的 HTTP 服务器。以下是一个示例代码,监听 9000 端口,当收到请求时返回 "Hello, World":
    1. <?php
    2. // 设置监听端口
    3. $host = '127.0.0.1';
    4. $port = 9000;

    5. // 创建一个 TCP 套接字
    6. $server = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    7. if ($server === false) {
    8.     echo "无法创建套接字: " . socket_strerror(socket_last_error()) . "\n";
    9.     exit(1);
    10. }

    11. // 绑定套接字到地址和端口
    12. if (socket_bind($server, $host, $port) === false) {
    13.     echo "无法绑定套接字: " . socket_strerror(socket_last_error()) . "\n";
    14.     exit(1);
    15. }

    16. // 开始监听
    17. if (socket_listen($server, 5) === false) {
    18.     echo "无法监听端口: " . socket_strerror(socket_last_error()) . "\n";
    19.     exit(1);
    20. }

    21. echo "服务器已启动,正在监听 $host:$port...\n";

    22. while (true) {
    23.     // 接受客户端连接
    24.     $client = socket_accept($server);
    25.     if ($client === false) {
    26.         echo "无法接受客户端连接: " . socket_strerror(socket_last_error()) . "\n";
    27.         continue;
    28.     }

    29.     // 读取客户端请求
    30.     $request = socket_read($client, 1024);
    31.    
    32.     // 构建 HTTP 响应内容
    33.     $response = "HTTP/1.1 200 OK\r\n";
    34.     $response .= "Content-Type: text/plain\r\n";
    35.     $response .= "Connection: close\r\n";
    36.     $response .= "\r\n";
    37.     $response .= "Hello, World";

    38.     // 发送响应到客户端
    39.     socket_write($client, $response);

    40.     // 关闭客户端连接
    41.     socket_close($client);
    42. }

    43. // 关闭服务器套接字
    44. socket_close($server);
    复制代码
    代码解释:
    创建服务器套接字:socket_create() 创建一个 TCP 套接字,用于监听客户端的连接。
    绑定套接字:socket_bind() 将套接字绑定到本地的 127.0.0.1 地址和 9000 端口。
    监听端口:socket_listen() 开始监听客户端连接,最大等待队列为 5。
    接受连接:socket_accept() 等待并接受来自客户端的连接。
    读取请求:socket_read() 读取客户端发送的请求(这里只读取了请求的第一部分,实际应用中可以根据需要解析 HTTP 请求)。
    发送响应:构建一个简单的 HTTP 响应,将 "Hello, World" 作为响应体返回。
    关闭连接:socket_close() 关闭客户端和服务器的套接字。
    运行方式:
    将上面的代码保存为 http_server.php,然后在命令行中运行:
    1. php http_server.php
    复制代码
    服务器将会启动,监听 9000 端口。当你使用浏览器或其他 HTTP 客户端(如 curl)访问 http://127.0.0.1:9000 时,你应该会收到以下响应:
    1. Hello, World
    复制代码
    到此这篇关于基于PHP实现一个简单的http服务器的文章就介绍到这了,更多相关PHP http服务器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/program/332325vws.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表