首页 > 编程开发 > PHP    日期:2026-07-14 / 浏览

在 PHP 中,你可以使用 socket 函数编写一个简单的 HTTP 服务器。以下是一个示例代码,监听 9000 端口,当收到请求时返回 "Hello, World":

<?php
// 设置监听端口
$host = '127.0.0.1';
$port = 9000;
 
// 创建一个 TCP 套接字
$server = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($server === false) {
    echo "无法创建套接字: " . socket_strerror(socket_last_error()) . "\n";
    exit(1);
}
 
// 绑定套接字到地址和端口
if (socket_bind($server, $host, $port) === false) {
    echo "无法绑定套接字: " . socket_strerror(socket_last_error()) . "\n";
    exit(1);
}
 
// 开始监听
if (socket_listen($server, 5) === false) {
    echo "无法监听端口: " . socket_strerror(socket_last_error()) . "\n";
    exit(1);
}
 
echo "服务器已启动,正在监听 $host:$port...\n";
 
while (true) {
    // 接受客户端连接
    $client = socket_accept($server);
    if ($client === false) {
        echo "无法接受客户端连接: " . socket_strerror(socket_last_error()) . "\n";
        continue;
    }
 
    // 读取客户端请求
    $request = socket_read($client, 1024);
    
    // 构建 HTTP 响应内容
    $response = "HTTP/1.1 200 OK\r\n";
    $response .= "Content-Type: text/plain\r\n";
    $response .= "Connection: close\r\n";
    $response .= "\r\n";
    $response .= "Hello, World";
 
    // 发送响应到客户端
    socket_write($client, $response);
 
    // 关闭客户端连接
    socket_close($client);
}
 
// 关闭服务器套接字
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,然后在命令行中运行:

php http_server.php

服务器将会启动,监听 9000 端口。当你使用浏览器或其他 HTTP 客户端(如 curl)访问 http://127.0.0.1:9000 时,你应该会收到以下响应:

Hello, World

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章