![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 вполне достаточен.
> окно создается через опенгл)? Если просто закрыть окно, на сервере вылезает
В огороде бузина, а в Киеве дядька.
> не помогают
Это ж не касторка, чтобы "помогать"