[Ruby] чтение из сокета неопределенного количества строк

Ihar Viarheichyk i.viarheichyk at sam-solutions.net
Wed May 7 16:18:53 MSD 2003


On Wed, May 07, 2003 at 05:39:24PM +0600, vic ismakaev wrote:
> while @s.readline.length > 0
>      line=@s.readline
>     p line
> end
> Так вот - в последнем цикле: останавливается на последней строке,прочитанной 
> из сокета и остается в таком состоянии,пока я его не прерву по CTRL+C.После 
> чего появляется ошибка типа
> ./pop.rb:11:in `readline': Interrupt
>         from ./pop.rb:11
> И я никак не пойму,как отловить момент,что строк из сокета больше не получишь 
> и выйти из цикла.
> По идее,в такой конструкции цикла while он должен прерываться после последней 
> строки и вываливаться из цикла,но почему-то этого не происходит.
> 
> Потому и вопрос - какого вида цикл мне нужно использовать?

Логично. Нужно так:
while (line = @s.readline.length) > 0
	p line
end

-- 
Igor Vergeichik
ICQ 47298730




More information about the Ruby mailing list