RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> > > Ок. А если поток данных длинный, соединение медленное? Не будет ли ситуаций, когда в потоке появляются "окна" и read вертается без ошибки, но соединение еще живо? Или в этом случае read ждет данных даже в неблокирующем режиме? > > > > с сокетом работаешь через select. > > ты ведь работаешь с сокетом через select, да? > > Вообще-то нет. Для начала я в стандартной тредовой модели с блокирующими сокетами сменил режим на неблокирующий, чтобы можно было в этом же треде отслеживать таймауты. Но если нужен обязательно select - сделаем. > > > если select сказал что на сокете есть данные - делаешь recv. > > recv принимает столько данных, сколько есть. даже в блокирующем режиме не ждёт. > > Точно в блокирующем не ждет конца пакета? > > > если recv читает 0 - значит соединение закрыто. > > Т.е. резюме такое - если select сказал, что данные есть, а recv вернул ноль - кирдык соединению? >
__, _,_ __, _,_ _,
|_) | | | \ | / /_\
| \ | | |_/ |/ | |
~ ~ `~' ~ ~ ~ ~
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.