火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 596|回复: 6
打印 上一主题 下一主题

[视窗] 开源简单HTTP服务器 能跑wordpress fastcgi php web hpsocket

[复制链接]

5

主题

81

帖子

976

积分

高级会员

Rank: 4

积分
976
跳转到指定楼层
楼主
发表于 2024-4-14 08:39:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
主要参考了下面两个文档写的,基于hpsocket实现,本身对HTTP服务器工作原理了解不多
HTTP灵魂拷问,你了解你的每次请求吗
developer.mozilla.org/zh-CN/docs/Web/HTTP

实现了基本的GET请求,这部分比较完整,测试过大文件下载,hash没问题,如果当只读的网盘,自己加上用户验证功能控制访问基本上是完全能用了
POST部分只是能让wordpress跑起来,还有很多都没处理,感觉东西很多,自己又不懂只能先放一放了,服务器接收数据的潜在危险性太高
php部分使用tcp通信,也就是依赖php-cgi.exe,程序内部没有对进程工作状态进行管理,需自行实现
fastcgi部分由于看不懂英语文档,看得懂估计也没心思慢慢看,中文资料又少,参考了一些翻译,勉强能工作了
线程池部分脑子还是糊的,这部分需要重构,因为要涉及指针这东西用起来感觉很绕
如果你发现内存泄漏,别担心,这是官方封的库有问题,这部分我查了很久,有些资源就是释放不掉,在尝试替换hpsocket6.0.1的源码后,表面上看着是解决了,所以很可能是官方库太老导致的,解决方案之一就是自己替换最新的源码

之前没写过这种多线程与多线程交互的程序,目前整体走了一遍,大致上算是理解了http的请求和响应流程,能跑起来了,还没想好接下来怎么去重构成任务管理的方式,让其工作起来更科学些,应该是利用多线程每次请求向线程池登记一个任务,丢到线程里慢慢处理,这样hpsocket的主线程就不会阻塞,处理完再触发事件,根据ID检测链接是否中断,没中断就响应,中断就释放资源,等理好思路把代码重构一下,这个摸黑整出来的源码就放出来给大家学习吧,暂时先告一段落了,看火山短时间也不会有啥大更新,无符号,结构体这些估计是没戏了,最近在搞的go我肯定是用不上的


注意本程序仅供内网演示使用,如果想在公网上使用,需注意安全


下面是演示,忘记点phpinfo了,懒得重新录了,就这样吧
本来想大文件下载和播放视频进度条拖动演示的,但考虑会有画面,所以就没录进去,这个自己测试吧





压缩包包含WWW文件夹中部分资源,默认放到C:\www测试
演示.rar (1.72 MB, 下载次数: 11)

评分

参与人数 1金钱 +15 收起 理由
4899 + 15

查看全部评分

回复

使用道具 举报

48

主题

223

帖子

1374

积分

金牌会员

嘿嘿哈哈

Rank: 6Rank: 6

积分
1374
沙发
发表于 2024-4-14 22:14:46 | 只看该作者
致敬发烧友
回复

使用道具 举报

9

主题

259

帖子

2307

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2307
板凳
发表于 2024-4-15 04:00:34 | 只看该作者
请求写过了,看看PHP部分咋实现的,感谢分享,学习学习
回复

使用道具 举报

18

主题

221

帖子

2707

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2707
地板
发表于 2024-4-15 09:27:43 | 只看该作者
支持一下
回复

使用道具 举报

32

主题

433

帖子

2135

积分

金牌会员

Rank: 6Rank: 6

积分
2135
5#
发表于 2024-4-15 10:03:23 | 只看该作者

致敬发烧友
回复

使用道具 举报

14

主题

304

帖子

1508

积分

金牌会员

接单Q:413795326

Rank: 6Rank: 6

积分
1508
QQ
6#
发表于 2024-4-16 21:41:01 | 只看该作者
  这个看着高端多了。
(\__/)
( •ᴗ•)
/> 软件 小程序 APP POST 脚本 建站 QQ:413795326
回复

使用道具 举报

11

主题

407

帖子

1208

积分

金牌会员

Rank: 6Rank: 6

积分
1208
7#
发表于 2024-4-18 21:39:50 来自手机 | 只看该作者
好烧脑的网络服务器开发
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-5-2 16:25 , Processed in 0.090021 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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