Para converter o stream para string você pode utilizar o seguinte one-liner:
"<seu stream hex>".split('').each_slice(2).map {|char| char.join.hex.chr }.join
não é uma solução elegante, mas é suficiente pra suprir sua necessidade.
Quanto a parte de conexão com o socket TCP e leitura dos pacotes vindos do servidor, dê uma olhada na classe TCPSocket da biblioteca-padrão do Ruby (a última versão, 2.2.1, pode ser encontrada aqui:http://ruby-doc.org/.../TCPSocket.html).