[Spread-users] byte-order/endiness for payload

Nilo Rivera nrivera at cs.jhu.edu
Mon May 11 22:18:00 EDT 2009


Hello Joseph,

In case you missed it, SP_receive() -- 
http://spread.org/docs/spread_docs_4/docs/sp_receive.html -- has an 
endian_mismatch field that lets you know if there is a mismatch in the 
byte order between the sender and the receiver.  Basically, using this 
field prevents you from wasting cpu-cycles when you don't really need 
any conversion in the fields (as opposed to using htonl).

There are also some conversion utilities available in Spread:
http://www.spread.org/docs/spread_docs_4/docs/endian_conversion.html

However, sending the struct itself can be an issue, especially if there 
are different types in it (due to alignment/etc in different 
architectures). So you may also want look at how to serialize data for 
network transmission.

Nilo


Joseph VanAndel wrote:
> What techniques do spread users use to handle byte-order and alignment  
> issues for messages sent via spread?
>
> For example, if I'm sending a set of parameters
>
> struct example {
>      int param1;
>      int param2;
>      float f1;
>      float f2;
> };
> from one computer to another computer with different byte order and/or  
> alignment, I can't simply send the byte representation of the structure.
>
> For integers, I could use the htohl() calls, but there is no standard  
> implementation (that I know of) for network byte order for floats or  
> doubles.  I could also use Sun's xdr or send the parameters using XML.
>
> Any other suggestions?
>
> _______________________________________________
> Spread-users mailing list
> Spread-users at lists.spread.org
> http://lists.spread.org/mailman/listinfo/spread-users
>   





More information about the Spread-users mailing list