I'm going to be working on a fairly basic networking application  
shortly.  This is low level socket work.  (I cannot use a nicety like  
DRB sadly.)

I'm very familiar with this kind of stuff in Perl, but have done very  
little socket work in Ruby.  I need something that can reliably work  
with around 50 users sending light activity.  There is the  
possibility of a large write to them here and there and that cannot  
block the process.

I know a little from past questions here:

http://rubyurl.com/miq

However, I think I remember someone saying Ruby 1.8.4 is better with  
nonblocking sockets.  So, can some networking guru take a stab at  
these questions:

1.  I need to use threads *and* nonblocking sockets to be safe, right?
2.  Can I use gets() and puts() now in Ruby 1.8.4 or do I still need  
to do low level reads and writes?
3.  Do I need to rescue Errno::EWOULDBLOCK?
4.  This isn't going to work on Windows, right?  (That's okay in this  
case.  Just making sure.)

Thanks for the help.

James Edward Gray II