Mongoose源码分析之--简单的服务器搭建(C语言)
2015-03-02 14:27
260 查看
[code]由于在IOS终端设备上播放实时的TS流,要使用MPMoviePlayerController控件,必须采用Http请求的形式去请求数据,而TS流的来源是通过HTTP请求拿到的,需要再把这个拿到的TS流发送给IOS播放器,所以试图自己搭建一个HTTP服务器,为此学习了Mongoose的源码,这是一个非常轻便,易用,且性能稳定的一套Web服务器源码,总代码不到五千行,在我看来是学习HTTP服务器搭建的一个好的例子。 根据我对Mongoose源码的查看和分析,建立一个http服务器的流程是: 开启一个master线程:监听线程->监听所有的套接字读状态是否发生变化(判断是否有套接字请求连接),将请求连接的套接字加入到全局的queue[20]中去。如果队列已满,则等待。 同时开启N个worker线程:不断从queue中拿出头套接字进行连接处理,如果队列为空,则等待。 最简单的一个HTTP服务器搭建C语言代码如下。
[code]#include <stdio.h> #include <string.h> #include "mongoose.h" static void *callback(enum mg_event event, struct mg_connection *conn) { if (event == MG_NEW_REQUEST) { //response for http request. } } int main(void) { struct mg_context *ctx; const char *options[] = {"listening_ports", "8080", NULL}; ctx = mg_start(&callback, NULL, options); getchar(); // Wait until user hits "enter" mg_stop(ctx); return 0; }
以上为搭建一个简单的本地服务器,端口为8080,运行起来之后在本机的浏览器中访问http://127.0.0.1:8080/地址则可以访问到本机的根目录。如果需要自定义服务器对请求的响应,那么可以在代码中回调函数callback中自行实现。
相关文章推荐
- Mongoose源码分析之--简单的服务器搭建(C语言)
- go语言 通过http包搭建简单web服务器 对http包源码的略微分析
- Go搭建简单服务器及http包源码分析
- live555搭建流媒体服务器2--live555源码分析
- Mangos源码分析(1):服务器结构探讨之最简单的结构
- Mangos源码分析(1):服务器结构探讨之最简单的结构
- Mongoose源码分析:外篇之web服务器
- Mangos源码分析(1):服务器结构探讨之最简单的结构
- spring4.0 源码分析 搭建简单的分析环境(一)
- 【简单Web服务器搭建】基于Socket实现的最简单的Web服务器【ASP.NET原理分析】
- live555搭建流媒体服务器2--live555源码分析2
- Mangos源码分析(3):服务器结构探讨之简单的世界服实现
- Mangos源码分析(1):服务器结构探讨之最简单的结构
- Mangos源码分析(3):服务器结构探讨之简单的世界服实现
- 基于SVN源码服务器搭建(详细教程分析)
- Mangos源码分析(1):服务器结构探讨之最简单的结构
- Mangos源码分析(1):服务器结构探讨之最简单的结构
- Mangos源码分析(3):服务器结构探讨之简单的世界服实现
- 【简单Web服务器搭建】基于Socket实现的最简单的Web服务器【ASP.NET原理分析】
- Mangos源码分析(3):服务器结构探讨之简单的世界服实现