![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Заброшенные сокеты
Евгений07 © (2011-09-16 16:47:00)Доброго времени!
Встал такой вопрос: что делать с брошенными клиентом сокетами?
Пример
Сторонняя прога запускает мою ДЛЛ
Клиентский сокет подключается к моему серверу
Сторонняя прога вырубает мою ДЛЛ. Без объявления
Сервером не могу вырубить сокет клиента
Сторонняя прога опять запускает мою ДЛЛ
Клиентский сокет хочет подключиться к моему серверу
sniknik (2011-09-16 23:18:00) [41]> Не правильный ответ
это экзамен?
> На перезапуск сокета отвечает 10038 ошибкой
???
это не "сокет занят" из-за того что "срублен", это "сокетная операция на "не сокете"", т.е. обьект/значение в переменной содержащей указатель на обьект перестало быть сокетом...
короче, кривой код не обрабатывает ошибки, а засоряет переменные "мусором".
Евгений07 (2011-09-16 23:11:00) [42]Rouse_ © (16.09.11 22:22) [8]
Прошу прощения
> Евгений07 (16.09.11 22:52) [10]
>
> Rouse_ © (16.09.11 22:22) [8]
> Сокет с жив клиентской стороны
Не правильный ответ
Вырубается длл с клиентом
На сервере остается сокет с соединением
На перезапуск сокета отвечает 10038 ошибкой
Убирается перезагрузкой серверной проги
Евгений07 (2011-09-16 22:52:00) [43]Rouse_ © (16.09.11 22:22) [8]
Сокет с жив клиентской стороны
Евгений07 (2011-09-16 22:51:00) [44]С клиентской стороны?
Rouse_ (2011-09-16 22:22:00) [45]
> 2. Вырублена длл, сокет жив
С клиентской или серверной стороны?
Евгений07 (2011-09-16 21:50:00) [46]
> Rouse_ © (16.09.11 19:25) [2
С клиентом могут быть ситуации:
1. Вырублена прога с длл клиентом
2. Вырублена длл, сокет жив
включена длл повторно
Ситуация с сервером: перезапущен слушающий сокет
1. включен клиент = все нормально
2. включена прога с вырубленной длл, сокет жив
У моего сервера 1 клиент
Sha (2011-09-16 21:09:00) [47]Ну как придет, пусть расскажет:
1 Какие операции с сокетами выполняет программа, какие - DLL?
2 Срубает DLL - что это значит?
3 Что сохранилось в контексте? Что утекло? Какие операции повисли?
4 Снова запускает - что это значит?
5 Контекст очищен? Все снова - здорово?
Rouse_ (2011-09-16 21:06:00) [48]Ну судя по всему клиент находится в библиотеке...
Sha (2011-09-16 20:42:00) [49]Кто понял, причем тут сторонняя прога и его ДЛЛ?
Евгений07 (2011-09-16 20:25:00) [50]DiamondShark © (16.09.11 19:20) [1]
Если русский язык для вас родной
Сторонняя прога запускает мою ДЛЛ
Клиентский сокет подключается к серверу
Сторонняя прога вырубает мою ДЛЛ.
Сервер не вырубает клиента
Сторонняя прога опять запускает мою ДЛЛ
Клиентский же сокет тащится к серверу
Да я же поэт сокетов!
Rouse_ (2011-09-16 19:25:00) [51]
> Сторонняя прога вырубает мою ДЛЛ. Без объявления
> Сервером не могу вырубить сокет клиента
должно пройти уведомление о разрыве сессии (ну тут смотря какая модель транспорта используется, но в итоге все равно уведомление есть).
В любом случае при повторном соединении проблем быть не должно, или неверно описан механизм.
DiamondShark (2011-09-16 19:20:00) [52]Если русский язык для вас родной, то стоит подумать о визите к психиатру, поскольку подобная речь -- очень тревожный симптом.