Larbin: Webserver

本文详细解析了Larbin Webserver的主要组成部分及其运作机制,包括线程启动、socket监听、请求处理、响应生成等关键环节。通过深入分析readRequest、parseRequest、writeHeader等核心函数,读者可以全面理解Webserver如何实现高效的数据传输与响应。此外,文章还介绍了输出统计、管理答案等辅助功能,为开发者提供了实用的技术指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 花了一个月,没有搞完Larbin,实在不应该。检讨一下。尽快搞完吧!

Webserver:
   在主程序中,以线程的方式启动,得到爬虫的运行状态。
   startWebserver : 线程入口程序,完成socket的相关工作,并且监听80端口。
                                 当有数据包到来的时候,调用manageAns进行响应。
   readRequest    : 在manageAns中作为一个参数被调用。其参数是接受到的文件。(accept已经将文件接收到的文件放入了新的套接字文件中)
                                readRequest从套接字文件中读取字符,他将文件整个的读取。然后分析是否读取完毕。如果读取完毕,则返回buf+4,即去掉
                              “Get ”字符的请求内容。如果读取错误则返回NULL。如果没有读取完毕,则继续读取。
   parseRequest   : 返回1,则表示没有读取完毕,继续读取;返回0,则表示读取完毕;返回-1,则表示错误发生。
                                  首先判断并跳过Get字符。如果已经是读取的这段buf的尾部了,则判断最后字符是否为换行,如果是则返回0,否则由于此时设置size
                                  =0,循环被中断,返回1.如果是读取文件的中部,则查找“ ”,未找到则返回1;已找到则将pos和size进行变换,并找到文件尾。
   writeHeader    : 向socket(网口)中写入,响应的头。
   writeFooter    :网页面写入响应html的最后一行代码,并结束这个链接。
   writeTime      :网页面写入时间
   writeDebug     :
   writeStats     :
   writeSpecStats :
   writeGraph     :调用histogram来画柱状图,用来反映历史信息的。
   writeUrls       :
   writeIpUrls    :  
   manageAns      :主要进行分配的函数。首先利用writeHeader写出响应头。
                                   然后根据文件类型进行分配。包括output,dns,ip,all,debug,grap,smallstats和默认.
                                   最后写文件结束标志,然后中断链接。
   outputStats    :输出当前的一些信息。
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值