[Ruby] чтение из сокета неопределенного количества строк
Grigory Milev
week at altlinux.ru
Wed May 7 16:32:19 MSD 2003
>>>>> "vic" == vic ismakaev <viclists at mail.esoo.ru> writes:
vic> Приветсвую всех! Я опять с тупым вопросом: как в цикле прочитать из
vic> сокета неопределенного количество строк? Например есть код вида
vic> @s=TCPSocket.open('mail','110') p @s.readline("\n") @s.puts("user
vic> test") p @s.readline("\n") @s.puts("pass 123") p @s.readline("\n")
vic> @s.puts("stat") p @s.readline("\n") @s.puts("list") while
vic> @s.readline.length > 0 line=@s.readline p line end Так вот - в
vic> последнем цикле: останавливается на последней строке,прочитанной из
vic> сокета и остается в таком состоянии,пока я его не прерву по
vic> CTRL+C.После чего появляется ошибка типа ./pop.rb:11:in `readline':
vic> Interrupt from ./pop.rb:11 И я никак не пойму,как отловить момент,что
vic> строк из сокета больше не получишь и выйти из цикла. По идее,в такой
vic> конструкции цикла while он должен прерываться после последней строки
vic> и вываливаться из цикла,но почему-то этого не происходит.
vic> Потому и вопрос - какого вида цикл мне нужно использовать?
Проверяй на ! @s.eof
+--------------------------------------------------------+
Grigory Milev mailto:week at altlinux.ru
ALT Linux Team http://www.altlinux.ru
+--------------------------------------------------------+
Life too beautiful and interesting. Don't worry, be happy.
More information about the Ruby
mailing list