while true; server.gets; server_str += $_
よりも、
while s = server.gets; server_str += s

server_str[0..(size-("\r\n.\r\n".size))]
は
server_str.chomp("\r\n.\r\n")
という方法もある。

server_ary[1..server_ary.size] は server_ary[1..-1] とも書けるけど
先頭の2行を消すだけなら server_str.sub!(/\A.*\r\n.*\r\n/, '') でいいんじゃないか?
つーか、Arrayのまま持ってたほうがいいんでは。