Just a small addition to all this packet formatting talk... And, don't forget the Base-64 tricks. *If* you like ASCII (better for debugging) and you want to send binary values (like a long int) over the wire, then use can use Base-64 encoding. You *could* simply use HEX encoding with a heavy bandwidth penalty. Base-64 is a compromise. You can define 1-byte, 2-byte and 3-byte base-64 arguments for any particular field. Base-64 says that all ASCII message characters (except start and stop framing characters) are constrained to the ASCII range of '0' thru 'o' (which is 64 characters, which is 6 bits). Then, to encode a 16 bit binary number, you break it into 3 Base-64 character (6 bits each). binary Base-64 string (I use ASCII '0' as base character) Eg. 40233 --> 9dY 0 --> 000 1 --> 001 63 --> 00o The conversion routines are pretty simple. If you're happy with binary with ESCAPE coding for the framing characters, then ignore all the above! Thomas.Coonan@Sciatl.com