goahead webserver源码分析.docx
《goahead webserver源码分析.docx》由会员分享,可在线阅读,更多相关《goahead webserver源码分析.docx(22页珍藏版)》请在优知文库上搜索。
1、W*goaheadwebserver1.一个文本架构图main()II-WebsOpenServert)II-WebsOpen1.isienOI-sockclOpenConnaccep=WebSACCe等)I卜把MKkeU结构加入数组Sockel1.islIII-WebsUrIHimdlerDefineOII-初始化WebsUriHandIerType结构的WebsUrlHandicr数组II一将UriPrcfix和回调函数绑定在WebsUrIHandIcrtWcbsUrIHandIcrMaxI1PII-WebsUrIHandIerDefine(WebsDefauhHandIer)II-初始化
2、WebsUriHandIerType结构的WebsUriHandIer85(1II一将UriPrcfix和回词函数排定在WcbsUrlHandIcrtWcbsUrIHandIcrMaxI1P-WcbsFormDefine!)卜初始化symboltable结构Sym,把名字和Wl调函数名放进“m_结构卜把SymJ结构放进hash衣中卜-WebSASPDefine()I卜-初始化symbolIablC结构$ym_t,把名字和Wl调济数名放进symj结构I卜把sym_(结构放进hash表中II(mainloop)卜一SockeiReady(三)IlsocketSelect(-l.1000)卜-轮询s
3、ocke1.isl卜-轮泡Sockel1.isi中的HandlerMaskI-中的几个变IftI-变更SockctUM中的CurrcntEvcnts“soCke(ProCeSS()II-轮询SOcket1.istI)I-SockctReadyOI-SockctDoEvcntOI-假如在新的连接(来自IiStenfd)就调用SoCke(ACCeP0卜-调用sockcacccp()liiI网函数卜-快如不是新的连接就查找Socket1.ist数组调用SoCkeUsp-handler()回调函数wcbsAccept()卜-做一些检查-sockctCrcatcHand!cr(sid.SoCKET.RE
4、ADAB1.E.WebsSockctEvcnt,lint)wp)I卜把sid注册为读事务,初始化sockcis-handlcrWCbSSoCkclEVCnt等,更新对应的sockctl.istJSkMhandIcfMssk伯等)WebsSocketEvenK)I-推断读写操作I一读WcbsRcadEvcntOII-WebsUrIHandlerRequesM)I卜查找WbsUrIHandIer数级调用和UrIPrefix对应的回调函IS(WebSFonnHdndlCro.wII-注册默认的写事务函数wp-i(eSocket=WebsDefauhWriteEventI-sockclCrcatcHa
5、ndlcr(p-sid.SOCKETeWRITAB1.E.WcbsSockctEvcn1.(int)wp)II把$id注册为写事务、初始化socketsp-handlcr=wcbsSockcEvcnt等,更新对应的Sockei1.isiSJtii1.WcbsDcfauItWntcEvcntO用户管理部分在um.c中实现,Web服务器的初始化是在dcfaultx和WCbS.c中实现url处理函数在handlcr.c中实现*/if(initWebs()p.SockelReadyreturns(ruewhenasocketisreadyfoservice.SOCkelSdCCtwillblockun
6、tilaneventoccurs.SockctProcesswillactuallydo(heservicing.W产主循环/WhiIe(Sfinished)1sockctRedy()函数检查是行有打算好的SOCk事务2.SOCkCISdeC1()函数百先把各个MKk您爱好的事务(sphandlerMask)注册给三个策合读,写,例外),然后调用SdeCl系统调用,然后更制各个sock的sp-cucn(Evcnts.表示各个SOCk的当前状态.这两个函数在SoCkGCn.c中实现,他们主要操作的数据是SoCkeU变量Sockct1.ist中的handlcrMask和CurrcntEvcnts,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- goahead webserver源码分析 webserver 源码 分析
