测试结果
运行例程04,端口设置为8000。分别是用浏览器和curl命令访问
代码分析
mian函数
在main函数中没有什么特别的地方,唯一需要介绍的地方就是这里创建了一个HTTP server的处理函数。
这里的process函数类似于之前的callback函数,参数类型完全一样。
process函数
这个函数中主要包含了
- 获取request的http数据报头部信息
- 编辑response数据报并返回
这里有一个新操作是append_output_body()。
显然让用户生成完整的http body再传给我们并不太高效。用户只需要调用append接口,把离散的数据一块块扩展到message里就可以了。
append_output_body()操作会把数据复制走,
另一个带_nocopy后缀的接口会直接引用指针,使用时需要注意不可以指向局部变量。 使用append_output_body_nocopy()接口时,buf指向的数据的生命周期至少需要延续到task的callback。