资源描述:
《goaheadwebserver源码分析研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、个人收集整理仅供参考学习转载goaheadwebserver源码分析1.一个txt文本架构图main()
2、
3、--websOpenServer()
4、
5、--websOpenListen()
6、
7、--socketOpenConnection()b5E2RGbCAP
8、
9、--打开webServer服务器p1EanqFDPw
10、
11、--初化socket_t结构(注册websAccept()回调函数(socket_tsp->accept=websAccept)等)DXDiTa9E3d
12、
13、--把socket_t结构加入数组socketListRTCrpUDGiT
14、
15、
16、--web
17、sUrlHandlerDefine()
18、
19、--初始化websUrlHandlerType结构地websUrlHandler数组5PCzVD7HxA
20、
21、--将urlPrefix和回调函数绑定在websUrlHandler[websUrlHandlerMax]中jLBHrnAILg
22、
23、--websUrlHandlerDefine(websDefaultHandler)
24、
25、--初始化websUrlHandlerType结构地websUrlHandler数组xHAQX74J0X
26、
27、--将urlPrefix和回调函数绑定在websUrlHandler[websUrl
28、HandlerMax]中LDAYtRyKfE
29、
30、
31、
32、--websFormDefine()
33、
34、--初始化symboltable结构sym_t,把名字和回调函数名放进sym_t结构Zzz6ZB2Ltk
35、
36、--把sym_t结构放进hash表中26/26个人收集整理仅供参考学习
37、
38、--websAspDefine()
39、
40、--初始化symboltable结构sym_t,把名字和回调函数名放进sym_t结构dvzfvkwMI1
41、
42、--把sym_t结构放进hash表中
43、
44、
45、(mainloop)----
46、--socketReady(-1)
47、
48、socketSelect(-1,
49、1000)^
50、--轮询socketList
51、--轮询socketList中地handlerMaskrqyn14ZNXI
52、
53、
54、--中地几个变量
55、--改变socketList中地currentEventsEmxvxOtOco
56、
57、
58、
59、--socketProcess()^
60、
61、--轮询socketList[]
62、
63、
64、--socketReady()
65、
66、
67、--socketDoEvent()
68、
69、
70、--如果有新地连接(来自listenfd)就调用socketAccept()SixE2yXPq5
71、
72、
73、--调用socketAlloc()初始化socket_t结构6ewMyirQF
74、L
75、
76、
77、--把socket_t结构加入socketList数组kavU42VRUs
78、
79、
80、--调用socket_tsp->accept()回调函数y6v3ALoS89
81、
82、
83、
84、
85、--如果不是新地连接就查找socketList数组调用socket_tsp->handler()回调函数M2ub6vSTnP
86、
87、
88、
89、--
90、websAccept()26/26个人收集整理仅供参考学习
91、--做一些检查
92、--socketCreateHandler(sid,SOCKET_READABLE,websSocketEvent,(int)wp)0YujCfmUCw
93、
94、--把sid注册为
95、读事件,初始化socket_tsp->handler=websSocketEvent等,更新对应地socketList数组(handlerMask值等)eUts8ZQVRdwebsSocketEvent()
96、--判断读写操作
97、--读websReadEvent()
98、
99、--websUrlHandlerRequest()
100、
101、--查找wbsUrlHandler数组,调用和urlPrefix对应地回调函数(websFormHandler(),websDefaultHandler()等)sQsAEJkW5T
102、
103、--写,调用(wp->writeSocket)回调函数we
104、bsFormHandler()
105、--跟据formName查找hash表,调用用户定义地函数websDefaultHandler()
106、--处理默认地URL请求,包括asp页面
107、--websSetRequestSocketHandler()
108、
109、--注册默认地写事件函数wp->writeSocket=websDefaultWriteEventGMsIasNXkA
110、
111、--socketCreateHandler(wp->sid,SOCKET_WRITABLE,websSocketEvent,(int)wp)TIrRGchYzg
112、
113、--把sid注册为写事件,初始化so
114、cket_tsp->handler=websSocketEvent