2 ms·
You are oversimplifying things. You can't just read a byte or read a length, not at all. You have to check whether you have 8 bytes in a buffer for that length
by zzzcpan 11y ago
You are oversimplifying things. You can't just read a byte or read a length, not at all. You have to check whether you have 8 bytes in a buffer for that length field or how many bytes your spec specifies, then you have to decode that length, is it in a big-endian or in a little-endian, decide where do you need to shift each byte, then you have to check whether you have that much bytes in a buffer to read the data and so on. It's even harder, than manual parsing of texts, because you have to deal with different encodings and cannot just skip anything til whitespace, no, you have to parse everything and not make a mistake interpreting every little thing from the spec. But you know, it's kind of stupid to parse texts manually, you do it with a regular expression or a parser generator and write rules like "'FOO' whitespace number CR? LF", so they are still way easier to deal with.