Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Заброшенные сокеты


Страницы:   1 2 3

Евгений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]

Если русский язык для вас родной, то стоит подумать о визите к психиатру, поскольку подобная речь -- очень тревожный симптом.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо