[PHP] 使用Socket提供Http服务
2023-02-18 15:47:25 时间
我的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); } }
效果:
相关文章
- 数据库四大特性和事务隔离级别
- Spring Security Oauth2.0自定义返回值
- Spring Security 注解
- Http和Rpc区别
- ExceptionHandler(思路参考CustomException)
- 秒杀扣除库存方案
- MySql的autoReconnect与autoReconnectForPools属性对比
- mysql 失效连接
- RateLimiter令牌桶算法
- 【商城应用】商品运费流程设计
- 引用本地jar包记得加扫描路径(注意重复bean)
- 乐观锁悲观锁场景
- MySql存储过程参考
- MySQL存储过程事务
- Shiro (包含权限满足其中一个就通过的用法)
- mybatis collection
- MySQL执行计划
- MySQL8 设置大小写 正确步骤
- com.atomikos.datasource.ResourceException: XA resource 'masterDB': resume for XID异常
- SpringBoot+JTA+Mybatis