RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Программирование сокетов


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : Slavik Gnatenko
To : Igor Vaskov
Subj : Программирование сокетов

> > Ну а что ты ожидал? Нормальное полузакрытое TCP соединение. Откуда ошибка? Более того, оперативно узнать, что к нам пришел FIN, вообще невозможно. А так просто читаешь поток до тех пор, пока он не закончится (read вернулся без ошибки, но с данными нулевой длины).
> Ок. А если поток данных длинный, соединение медленное? Не будет ли ситуаций, когда в потоке появляются "окна" и read вертается без ошибки, но соединение еще живо? Или в этом случае read ждет данных даже в неблокирующем режиме?
В смысле? Есессно всегда возможно, что очередные данные в приемный буфер еще не поступили. Для этого и сделан FIONBIO, чтобы в этом случае вернуть EAGAIN, а не блокироваться.

2ErOs2: select - это уже другая техника, хотя тоже может применяться.


Tue 29 Nov 2005 00:29 Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.7.11) Gecko/2005




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.