[PHP] 使用Socket提供Http服务

本文介绍了一个使用PHP进行Socket编程的示例,展示了如何创建监听特定端口的Socket服务器,接收客户端连接并处理HTTP请求,通过解析请求路径实现简单路由。

我的SimpleLoader里面的一块

https://github.com/taoshihan1991/simpleloader

 

<?php
namespace Server;

class Socket{
    const PORT=1024;
    public function create(){
        $socket=socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        socket_bind($socket, "127.0.0.1",self::PORT);
        socket_listen($socket,4);
        echo "start http://127.0.0.1:1024\r\n";
        while(true) {
            $msgsock = socket_accept($socket);
             $buf = socket_read($msgsock,9024);
            if(preg_match("/\/(.*) HTTP\/1\.1/",$buf,$matchs)){
                if($matchs[1]!="favicon.ico"){
                    echo $buf;
                    $_SERVER['PATH_INFO']=$matchs[1] ? $matchs[1] : "Index/Index/index";
                    \SimpleLoader::router();
                    $html=\SimpleLoader::pathInfo();
                }
                socket_write($msgsock,$html);
            }else{
                socket_write($msgsock,"hello world");
            }
             socket_close($msgsock);
        } 
        socket_close($socket);
    }
}

效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值