<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style type="text/css">
<!--

/*
  The original subSilver Theme for phpBB version 2+
  Created by subBlue design
  http://www.subBlue.com

  NOTE: These CSS definitions are stored within the main page body so that you can use the phpBB2
  theme administration centre. When you have finalised your style you could cut the final CSS code
  and place it in an external file, deleting this section to save bandwidth.
*/


 /* General page style. The scroll bar colours only visible in IE5.5+ */
body {
        background-color: #;
        font-family: ;
        font-size: 11;
        color: #;
}

/* General font families for common tags */
font,th,td,p { font-family:  }
p, td           { font-size : 11; color : #; }
a:link,a:active,a:visited { color : #; }
a:hover         { text-decoration: underline; color : #; }
hr      { height: 0px; border: solid # 0px; border-top-width: 1px;}
h1,h2           { font-family: "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; font-size : 22px; font-weight : bold; text-decoration : none; line-height : 120%; color : #000000;}


/* This is the border line & background colour round the entire page */
.bodyline       { background-color: #; border: 1px # solid; }


/* General text */
.gen { font-size : 12px; }
.genmed { font-size : 11px; }
.gensmall { font-size : 10px; line-height: 12px}
.gen,.genmed,.gensmall { color : #; }
a.gen,a.genmed,a.gensmall { color: #; text-decoration: none; }
a.gen:hover,a.genmed:hover,a.gensmall:hover     { color: #; text-decoration: underline; }


/* Forum title: Text and link to the forums used in: index.php */
.forumlink              { font-weight: bold; font-size: 12px; color : #; }
a.forumlink     { text-decoration: none; color : #; }
a.forumlink:hover{ text-decoration: underline; color : #; }


/* The content of the posts (body of text) */
.postbody { font-size : 12px; line-height: 18px}
a.postlink:link { text-decoration: none; color : # }
a.postlink:visited { text-decoration: none; color : #; }
a.postlink:hover { text-decoration: underline; color : #}


/* Quote & Code blocks */
.code {
        font-family: ; font-size: 11px; color: #3FB753;
        background-color: #; border: #; border-style: solid;
        border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px
}

.quote {
        font-family: ; font-size: 11px; color: #444444; line-height: 125%;
        background-color: #; border: #; border-style: solid;
        border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px
}

-->
</style>
</head>
        <body>

        <div class="postbody">Yes, SDL_net has no knowledge of the endianness of the buffers you send and receive.<br />
<br />
Fortunately, SDL provides some excellent, optimal functions for reversing the order of bytes in SDL_endian.h<br />
<br />
As a general rule, you have three options for transmission (either file or network) endianness:<br />
1) Assume most machines using the transmitted data will be little-endian (a good general rule now that everyone is using x86)<br />
2) Convert to network byte order, which is big-endian.<br />
3) (Less practical): Have the client tell you its endianness, and convert to to client endianness before sending and to native endianness after receiving.<br />
<br />
A couple other good rules:<br />
1) Always transmit text as UTF-8 (if some requirement forces you to use UTF-16 or UTF-32; make sure the byte-order-mark U+FEFF is the first codepoint sent), unless you have no use of characters outside the ASCII range, and in that case transmit as ASCII.<br />
2) Always transmit the length (in bytes or Unicode code units [what C and C++ call "characters"]) of the text before the text itself.<br />
3) Always transmit as little data as possible (client bandwidth is often limited by their ISP, and server bandwidth isn't exactly free).<br />
4) Never transmit floating point numbers. Convert them either to fixed precision (if the only acceptable range is between 0 and 1 or -1 and 1) or a ratio. I know SDL provides a function for byte-swapping floats, but that doesn't make it a good idea, and conversion is rather simple. And, fun fact, a 64-bit ratio can represent PI and e (Euler's number) as accurately (to the 15th decimal place) as a 64-bit double can.</div>
        <div class="postbody"><br /><br /><hr /><br />Nate Fries</div>
        </body>
</html>