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

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

tclientsocket без компонента на форме..


evil_mike ©   (2008-07-21 20:35:00) 

Доброго времени суток.
Вот такой вопрос, как корректно завершить работу tclientsocket при закрытии приложения (окно создается через опенгл)? Если просто закрыть окно, на сервере вылезает ошибка из-за того что activeconnections превышает connections[]..free, destroy, socket.disconnect(0), close не помогают..


Anatoly Podgoretsky   (2008-07-22 14:56:00) [1]

Пусть клиенты сами об этом заботятся, это же общепринятые нормы.


evil_mike   (2008-07-22 14:55:00) [2]

Хм..попробую. Спасибо.


Сергей М.   (2008-07-22 14:31:00) [3]


> Anatoly Podgoretsky ©   (22.07.08 14:28) [13]
> А зачем?


Беспокоится о клиенте)

Боится опоздать то ли "03" вызвать то ли Шопена заказать)


Anatoly Podgoretsky   (2008-07-22 14:28:00) [4]

> evil_mike  (22.07.2008 14:03:11)  [11]

А зачем?


Сергей М.   (2008-07-22 14:16:00) [5]

Обычным образом - вызываешь методы чтения/записи соответствующего этому клиенту сокета.

Если исключение не возникло, значит жив, иначе мертв)

Всего делов-то)


evil_mike   (2008-07-22 14:03:00) [6]

А как мне иначе определить, жив клиент или отрубился?


Сергей М.   (2008-07-22 13:47:00) [7]


> кроме периодической проверки клиентов на жизнеспособность


А зачем она нужна вообще?


evil_mike   (2008-07-22 12:57:00) [8]

Хорошо. А кроме периодической проверки клиентов на жизнеспособность - есть менее трафикозатратный способ?


Сергей М.   (2008-07-22 11:37:00) [9]


> если точно то же самое, что у меня в клиенте с опенгл, повторить
> на стандартной дельфовской форме с компонентом, все отлично
> работает при закрытии окна


А какая нафих разница, какое приложение монтер дядя Вася завершит некорректно ?

Ему ведь по барабану - он просто оттяпает бокорезами кабель)
И будь твой клиент хоть с формой , хоть без формы, хоть с компонентом, хоть без него, хоть с OpenGL, хоть с чертом лысым - эта ситуация является аварийной, и твой сервер обязануметь ее обрабатывать правильно.
А он у тебя не умеет)


evil_mike   (2008-07-22 11:05:00) [10]

flaxe
Я знаю, что она на сервере возникает..сам же это и сказал. Но она там возникает из-за некорректного закрытия клиента..если точно то же самое, что у меня в клиенте с опенгл, повторить на стандартной дельфовской форме с компонентом, все отлично работает при закрытии окна.


flaxe   (2008-07-22 02:44:00) [11]

Ошибка возникает на сервере, вот в нем и копайся.
>  А если монтер дядя Вася у клиента свет выключит??


evil_mike   (2008-07-21 22:57:00) [12]

У тебя тоже окно создается через опенгл, а в проекте нет формы?


Сергей М.   (2008-07-21 21:37:00) [13]

А мне "помогает".
Что я не так делаю ?


evil_mike   (2008-07-21 21:34:00) [14]


> Вызов метода Free вполне достаточен.
>
>
> > окно создается через опенгл)? Если просто закрыть окно,
>  на сервере вылезает
>
>
> В огороде бузина, а в Киеве дядька.

Клиент и сервер же взаимосвязаны. Из-за того что клиент некорректно отрубается, на сервере тоже все неправильно рассылается. И, как я уже сказал, free не помогает.


Сергей М.   (2008-07-21 21:09:00) [15]


> tclientsocket без компонента на форме


Без какого еще такого "компонента" на какой-то еще там "форме" ?
ТСlientSocket - самодостаточный компонент, ни в каких других компонентах и формах он не нуждается вообще.


Сергей М.   (2008-07-21 21:05:00) [16]


> как корректно завершить работу tclientsocket


Вызов метода Free вполне достаточен.


> окно создается через опенгл)? Если просто закрыть окно, на сервере вылезает


В огороде бузина, а в Киеве дядька.


> не помогают


Это ж не касторка, чтобы "помогать"


Наверх

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