Update tutorial-10-user_defined_protocol.md

This commit is contained in:
xiehan
2020-09-28 15:29:03 +08:00
committed by GitHub
parent 508ca6f56c
commit 927d1d8667

View File

@@ -52,8 +52,7 @@ private:
### 反序列化函数append
* append函数在每次收到一个数据块时被调用。因此每条消息可能会调用多次。
* buf和size分别是收到的数据块内容和长度。用户需要把数据内容复制走。
* 如果实现了append(const void \*buf, size_t \*size)接口,可以通过修改\*size来告诉框架本次消费了多少长度。收到的size - 消费的size = 剩余的size剩余的那部分buf会由下一次append被调起时再次收到。此功能更方便协议解析当然用户也可以全部走自行管理,则无需修改\*size。
* 如果是UDP协议一次append一定是一个完整的数据包。
* 如果实现了append(const void \*buf, size_t \*size)接口,可以通过修改\*size来告诉框架本次消费了多少长度。收到的size - 消费的size = 剩余的size剩余的那部分buf会由下一次append被调起时再次收到。此功能更方便协议解析当然用户也可以全部复制走自行管理,则无需修改\*size。
* append函数返回0表示消息还不完整传输继续。返回1表示消息结束。-1表示错误需要置errno。
* 总之append的作用就是用于告诉框架消息是否已经传输结束。不要在append里做复杂的非必要的协议解析。