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

Ihar Viarheichyk i.viarheichyk at sam-solutions.net
Wed May 7 19:27:56 MSD 2003


On Wed, May 07, 2003 at 08:47:05PM +0600, vic ismakaev wrote:
> 7 Май 2003 19:55, Ihar Viarheichyk написал:
> > On Wed, May 07, 2003 at 07:10:15PM +0600, vic ismakaev wrote:
> > > сервер> пишет строку в сокет
> > > клиент> читает строку и что-то с ней делает
> > > сервер> не пишет строку в сокет(ничего не шлет)
> > > клиент> вывалится из цикла
> > > <конец цикла>
> > >
> > > Насколько я понял - надо пользоваться неблокирующим чтением сокета.Но как
> > > это сделать - не пойму.:(
> >
> > Дык, Kernel#select.
> Похоже оно.
> Но не пойму,как это применить.
> По идее
> a=[]
> select([@socket],a,nil,0.1)
> должна считать все в массив a.Но не считывает :(  Где-то я косячу.
> 
loop do
   res = select([@socket], nil, nil, 1)
   raise "Server timeout" unless res
   # Дальше пошло чтение из сокета и т.д
   # Обработка exceptions по вкусу
end   

-- 
Igor Vergeichik
ICQ 47298730




More information about the Ruby mailing list