socketを使ったプログラムについて質問させてください。

tcpサーバが返してくる文字列の行数がわからない場合は
クライアント側ではどのように読んだら良いのでしょうか?

例えばサーバから3行返ってきた場合、クライアントは

s = TCPSocket.new('localhost', 12345)
s.gets #=> 1行目
s.gets #=> 2行目
s.gets #=> 3行目

で良いと思うのですが、3行ということがわからない場合
getsを呼ぶ回数をどう判定したら良いのでしょうか?

3行目をgetsしたあとs.getsとすると、4行目を読もうとして(でも存在しないので)
止まってしまうので困っています。