HTTP服务器server程序介绍—StateThreads示例程序介绍

server 是官网提供的示例程序,演示了如何使用 StateThread 协程来实现一个 HTTP 服务器,下面就来演示一下 server 程序的基本用法。

server HTTP 服务器的启动命令如下:

bash 复制代码
cd obj/
# 创建日志目录
mkdir ./log
./server -l ./log -p 5 -b 192.168.0.109:8888

重点参数如下:

1,-l 指定日志目录

-l ./ 是设置日志目录为当前目录,运行之后,server 服务器的日志会保存到 log/errors 文件里面。如下

pid 文件里面记录的是 父级进程的 ID


2,-p 指定进程数量

-p 5 代表启动 5 个进程来处理 HTTP 请求,这是 StateThread 程序的惯例,如果你要利用多核,只能开多个进程,每个进程里面再创建多个协程。不能只开一个进程,然后在这个进程里面开多线程,每个线程再开多个协程。

不过这个问题,在 SRS 里面被解决了,他们已经做好了 多线程多协程功能,具体请阅读《SRS的多线程多协程架构》。

我们可以用 ps 命令查看一下 server 的进程数量,如下:

perl 复制代码
ps -Al | grep server

可以看到,确实有 5 个进程在处理 HTTP 请求,但是可以看到还有 第 6 个 server 进程,进程 ID 是 20946。他是下面 5 个子进程的 父级进程

20946 其实是一个 watch dog 进程,负责监控其他子进程的状态,如果其他子进程由于 bug 等问题死掉了,20946 进程就会重新创建一个子进程出来。


我们可以在浏览器访问这个 192.168.0.109:8888 页面,如下:

也可以使用 curl 来访问,如下:

arduino 复制代码
curl http://192.168.0.109:8888

本文是《 SRS原理 》一书中的文章,如需观看更多内容,请购买本书。

相关推荐
屏什么录5 天前
录屏超过两小时就卡顿崩盘?从参数调优到代码实现,一文彻底搞定长时间录屏
前端·音视频开发
字节跳动视频云技术团队5 天前
720P 直升 8K,解密 2026 抖音美好奇妙夜巨幕超分黑科技
人工智能·音视频开发
VimorphTech9 天前
文件名是 MP4 就能处理?用 ffprobe 检查视频流、音轨和时长
java·音视频开发
冬奇Lab11 天前
开源项目第242期:HyperFrames —— 写 HTML 就能渲染视频,专为 AI Agent 设计的确定性视频框架
人工智能·开源·音视频开发
屏什么录17 天前
电脑如何录屏幕视频和声音?从工具到代码,7 种方案帮你彻底搞定
前端·音视频开发
VimorphTech17 天前
转写结果怎么生成双语字幕?TypeScript 实现 SRT、WebVTT 与索引匹配
javascript·音视频开发
音视频牛哥22 天前
人形机器人的未来发展趋势是什么?从VLA、实时视觉到规模化运营
机器学习·机器人·音视频开发
霍营_托尼23 天前
纯前端播 40GB 本地视频?我把浏览器改造成了「磁盘流式」播放器
前端·javascript·音视频开发
花椒技术1 个月前
2.46 秒生成 5 秒视频:拆解 H3 Max 的模型、推理栈与硬件协同
算法·音视频开发·视频编码
代码小学僧1 个月前
从 0 到 1,记录我的第一个出海 SaaS 独立开发项目
前端·rpc·音视频开发