前面分析了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