Hi Terje,

     Suggest you use array#pack with arg of 'n' for int16 and 'N' for
int32.  Alternatively, a small Ruby extension written in C.  Cf.
Pickaxe book pp. 289-290.  Good luck.

Dennis

On Mon, 20 May 2002, Terje Elde wrote:

> Hi,
> 
> I'm starting on a projects which requires me to use a spesific network
> protocol.  This protocol demands that I write certain size fields in Int16,
> and other values as Int32.  The rest is just plain text.
> 
> While looking around I've found little or no indications of how to write a
> number of a spesific size (ie, int16) to a network socket, or how to deal with
> it at all.  I found a seemingly old int package which would allow me to do
> things like 100.prec(Int16), but it doesn't seem to work:
> 
> irb(main):004:0> require '/usr/local/lib/ruby/1.6/site_ruby/i386-freebsd4/num/int.so'
> true
> irb(main):005:0> 100.prec(Int16)
> 100
> irb(main):006:0> foo = 100.prec(Int16)
> 100
> irb(main):007:0> putc foo
> SystemStackError: stack level too deep
>         from (irb):7:in `putc'
>         from (irb):7
> irb(main):008:0> 
> 
> The simple goal is to be able to write numbers of size Int16 or Int32 to a
> socket.
> 
> Any help appreciated,
> Terje
>