作者回复: 在什么情况下数据会收不全呢?一个http连接请求的head并没有多大,head部分的报文肯定是需要预先解析处理啊,才能往下处理。这里parse_http_request严格来说是parse_http_request_header
作者回复: 大概是指哪个部分?因为客户端还是比较简单的,所以没有做这个。
作者回复: 这里你的理解有点问题,确实是两个buffer对象,一个input_buffer用来接收数据,这个input_buffer对象的写入是框架的handle_read函数来完成的,同时应用程序不端的将input_buffer里的数据取走,这样handle_read就可以不断的将接收缓冲区的数据写入input_buffer。
另一个buffer对象是output_buffer,应用程序不断的往这个缓冲区里写入待发送的数据,框架里的handle_write函数不端的将缓冲区的数据送到套接字发送缓冲区中。
缓冲区的设计中,肯定是有一个往缓冲区里写入的,另一个从缓冲区里读取数据,否则就没有缓冲区了,而是临时创建一个个的字节流对象。
使用缓冲区可以大大减少对内存的消耗。
作者回复: 是有点疯狂。(哭脸)
作者回复: 我也是ubuntu系统啊,有同学碰到同样的问题么?
作者回复: 是的,面向对象写起来简洁许多
作者回复: 非常好的问题,我发到统一答疑部分了。感谢~
作者回复: 很好奇学不动的意思是啥
编辑回复: 您好,文章已进行改正,谢谢反馈。