>   def to_server(text)
>     @socket.gets(text)
>     return true
>   end
>   def from_server()
>     return @socket.puts
>   end

You've got gets and puts the wrong way around. Read them as Get String
and Put String, gets reads from the socket and puts writes to it.

Also, there's a protocol error there, you want to_server to read like this:

def to_server(text)
  @socket.puts(text.to_s+"\r\n") # The line breaks are important, must be CRLF.
end

-- 
Phillip Hutchings
http://www.sitharus.com/