Little-Endian Active Mode Tcp ?

Per Hedeland per@REDACTED
Wed May 28 21:36:52 CEST 2003


Eric Newhuis <enewhuis@REDACTED> wrote:
>
>The active-mode {packet, 4} socket is AMAZING.  This is what one needs.  
>Beautiful.  But...
>
>I'd love to get rid of the binary continuation fragments in my recursive 
>feed parsers.  I could do it if Erlang would parse the little-endian 
>header.  My messages originate from an Intel box and the 4-byte size 
>header is little-endian.  I want Erlang to handle those headers so I can 
>simplify my parser code to focus on the message content instead of 
>content + framing.

The {packet, N} format (whether on a socket or a port) is endian-
independent - always most significant byte first (or is it last?:-).  I
guess you can call that "big-endian" like the docs do, but IMHO that
term doesn't really apply to bytes on a wire. If whatever is sending the
packets doesn't obey that, it has a bug - I would certainly hope that it
isn't another Erlang node. (I.e. don't do write(fd, &integer, 4) in your
C code, which is inherently non-portable, but make sure you write the
bytes in the right order by whatever means you prefer...)

--Per Hedeland



More information about the erlang-questions mailing list