[Ruby] чтение из сокета неопределенного количества строк
vic ismakaev
viclists at mail.esoo.ru
Wed May 7 15:39:24 MSD 2003
Приветсвую всех!
Я опять с тупым вопросом:
как в цикле прочитать из сокета неопределенного количество строк?
Например есть код вида
@s=TCPSocket.open('mail','110')
p @s.readline("\n")
@s.puts("user test")
p @s.readline("\n")
@s.puts("pass 123")
p @s.readline("\n")
@s.puts("stat")
p @s.readline("\n")
@s.puts("list")
while @s.readline.length > 0
line=@s.readline
p line
end
Так вот - в последнем цикле: останавливается на последней строке,прочитанной
из сокета и остается в таком состоянии,пока я его не прерву по CTRL+C.После
чего появляется ошибка типа
./pop.rb:11:in `readline': Interrupt
from ./pop.rb:11
И я никак не пойму,как отловить момент,что строк из сокета больше не получишь
и выйти из цикла.
По идее,в такой конструкции цикла while он должен прерываться после последней
строки и вываливаться из цикла,но почему-то этого не происходит.
Потому и вопрос - какого вида цикл мне нужно использовать?
--
С уважением
Виктор В Исмакаев
More information about the Ruby
mailing list