On Saturday, June 11, 2022 at 6:58:14 AM UTC-7, Christopher F Clark wrote:
I'm sorry for bringing more heat than light to this group.
Counted strings are important for protocols. Not everything we write
a lexer for is human written. Counted strings are a good way of
transmitting binary data. This is just one way computers are
different than humans....
Someone thought about that before. RPC, as used for NFS and
some other protocols, started with UDP, which has a record
boundary. It was later ported to TCP, which does not.
https://www.rfc-editor.org/info/rfc1831
So, section 10 describes the way records are marked.
They can be done in sections, so one doesn't have to buffer
the whole thing, or even know the whole length, to send
(or receive) one.
A similar method is used by IBM's VBS (Variable Blocked
Spanned) record format from OS/360 days, and still in
newer OS. It was originally needed for Fortran unformatted
I/O, but is part of the OS, and can be used by others.
(Especially, PL/I can read/write it.)
[RPC just has a length and a flag saying whether it's the last chunk. Internal data are XDR which is fixed length with no counts or descriptors, pretty pessimal
-John]
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)