文档介绍:袈goahead webserver源码分析螈 (2010-01-1710:12:16)薆标签: ()薂      |肇      |--websOpenServer()莆      |             |--websOpenListen()螆      |                           |--socketOpenConnection()莁      |                                           |--打开webServer服务器蒁      |                                           |--初化socket_t结构(ept()回调函数(socket_tsp->accept=ept)等)螇      |                                           |--把socket_t结构加入数组socketList膄      |            莄      |蒁      |--websUrlHandlerDefine()膈      |                |--初始化websUrlHandlerType结构的websUrlHandler数组袆      |                |--将urlPrefix和回调函数绑定在websUrlHandler[websUrlHandlerMax]中膃      |薁      |--websUrlHandlerDefine(websDefaultHandler)蕿      |                |--初始化websUrlHandlerType结构的websUrlHandler数组莃      |                |--将urlPrefix和回调函数绑定在websUrlHandler[websUrlHandlerMax]中羁      |         蚁      |蚅      |肅      |--websFormDefine()蚀      |               |--初始化symboltable结构sym_t,把名字和回调函数名放进sym_t结构螁      |               |--把sym_t结构放进hash表中肆      |薃      |--websAspDefine()螃      |               |--初始化symboltable结构sym_t,把名字和回调函数名放进sym_t结构袁      |               |--把sym_t结构放进hash表中蒇      |芅      |蒂      |(mainloop)羀   ----|--socketReady(-1)||socketSelect(-1,1000)袈   ^                  |--轮询socketList        |--轮询socketList中的handlerMask蚃   |  |                |--中的几个变量        |--改变socketList中的currentEvents芁   |  |肀   |  |--socketProcess()羅   ^  |              |--轮询socketList[]莅   |  |               |--socketReady()肀   |  |               |--socketDoEvent()肀   |  |                                |--如果有新的连接(来自listenfd)ept()莆   |  |                                                    |--调用socketAlloc()初始化socket_t结构袃   |  |                                                    |--把socket_t结构加入socketList数组肃   |  |                                                    |--调用socket_tsp->accept()回调函数膀   |  |螇   |  |                                |--如果不是新的连接就查找socketList数组调用socket_tsp->handler()回调函数薅   |  |袂