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


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

> Ситуация такая. Клиент закрывает соединение. Как на сервере достоверно узнать об этом?
> rc:=getsockopt(xSock,SOL_SOCKET,SO_ERROR,@B, hLen);
>
> Проверяется на localhost петле.
> Выдает всегда в переменную "В" ноль. Результат работы не зависит от состояния соединения.
Ну а что ты ожидал? Нормальное полузакрытое TCP соединение. Откуда ошибка? Более того, оперативно узнать, что к нам пришел FIN, вообще невозможно. А так просто читаешь поток до тех пор, пока он не закончится (read вернулся без ошибки, но с данными нулевой длины).


Mon 28 Nov 2005 13:38 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.