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

Eugene Scripnik Eugene.Scripnik at itgrp.net
Wed May 7 19:19:06 MSD 2003


vic ismakaev wrote:

>>А можно в качестве окончания высылать некую комбинацию (например пустую
>>строку или <BLA_BLA>)
> 
> Для этого нужно переделывать сервер.
В таком случае используй предложеный метод с select:
if select( [sock], nil, nil, 0.5 )
     while line = sock.gets
         puts line
     end
else
     raise 'out of input'
end
Второй параметр к select это масив output devices.
А в приведенной выше конструкции select возвращает nil, если в sock 
ничего не появилось в течении 0.5 секунд.
Сам селект ничего ни читает он лишь проверяет доступность данных. Чтение 
нужно делать самому.

-- 
Eugene Scripnik
IT Group
Software Architect
Tel./Fax +380 (372) 58-43-10
email: Eugene.Scripnik at itgrp.net
http://www.itgrp.net/




More information about the Ruby mailing list