我正在阅读有关 PostgreSQL(和类似的网络协议)如何处理消息解析的文章,我发现了以下语句:
为了避免与消息流失去同步,服务器和客户端通常都会先将整条消息读入缓冲区(使用字节数),然后再尝试处理其内容。
但我对两件事感到困惑:
这里的“与消息流失去同步”到底是什么意思?是指读取错误的字节,还是缺少消息边界?指的是哪种同步?
如果我在阅读整个消息之前就开始解析消息,会有什么问题?我想不出具体的例子来说明过早解析部分消息会导致真正的问题。是否有实际案例表明人们实际上会分块解析并遇到麻烦?