Thanks for the answers!  I guess I needed to RTFM a little more, the
'nil' is a normal part of IO#gets to return 'nil' if nothing is there.

using gets() from a TCPSocket seems to be a common question, since
everyone seems to have the problem where it hangs if the socket isn't
closed by the server.  (I do find this odd, is it actually expected you
know every time how many lines the server will send back?)

Is there a more efficient or accepted way to read an unknown amount of
data from a socket than the way I am doing it?

I've seen it done with 'timeout' and catches the error, but select()
includes a timeout.

I've seen things about sync and flush on the client side, but since I
have not once seen any comment from the asker that it actually worked,
I've never checked into it.

I am pretty much learning RUBY on the fly, working towards a final goal,
so I am hoping that I haven't missed anything else obvious here.

-- 
Posted via http://www.ruby-forum.com/.