mongoose 5.1版本框架分析
2014-01-27 23:01
253 查看
前面分析了4.1版本的框架,跟各位大神讲述的是类似的,今天想下新的版本编个测试程序看下,结果发现原来的函数都找不到了,于是重新分析一下源码。
【大流程】
首先调用mg_create_server函数,创建并初始化一个描述server的struct mg_server结构体
然后调用mg_add_uri_handler函数注册uri处理函数
然后在for(;;)循环中调用mg_poll_server函数来监听和处理连接
最后调用mg_destroy_server销毁server
其中最重要的流程在mg_poll_server函数中,分析如下:
使用select轮询所有的读写fd,其中包括监听socket的读取和新的连接的建立,包括client socket的读取和写入
跟原有版本最大的区别在于,不创建多线程来处理,而是完全由一个线程来进行新连接的建立和client的数据读写处理
这个版本的代码中包含了很多例子,挺好,不像4.1版本已经没得参考了,呵呵。
下载路径如下:http://cesanta.com/#downloads
【大流程】
首先调用mg_create_server函数,创建并初始化一个描述server的struct mg_server结构体
然后调用mg_add_uri_handler函数注册uri处理函数
然后在for(;;)循环中调用mg_poll_server函数来监听和处理连接
最后调用mg_destroy_server销毁server
其中最重要的流程在mg_poll_server函数中,分析如下:
使用select轮询所有的读写fd,其中包括监听socket的读取和新的连接的建立,包括client socket的读取和写入
跟原有版本最大的区别在于,不创建多线程来处理,而是完全由一个线程来进行新连接的建立和client的数据读写处理
这个版本的代码中包含了很多例子,挺好,不像4.1版本已经没得参考了,呵呵。
下载路径如下:http://cesanta.com/#downloads
相关文章推荐
- 马上Go 1.0
- Google Map API v2 步步为营(一) ----- 初见地图
- 持续集成及部署利器:Go
- Golang
- ZOJ 3751 Diagonal
- ZOJ 3751 Diagonal
- lex in golang
- 删除google网页快照
- django学习记录-django-1.5中简单地自定义自己的用户模型
- A星寻路算法(A* Search Algorithm)
- Word Break II
- django学习记录-控制表单错误
- 【语法】category
- Word Break
- New* Government Grants & Free U.s Money.
- Google lmctfy 3.1 - Example memory.stale_page_age error
- ZOJ Monthly, January 2014 E Diagonal (浙江大学月赛)
- 使用django的login来登陆用户的时候需要为用户模型添加backend
- Linked List Cycle II
- Linked List Cycle