Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];

Вниз

Клиент не отключается!!!   Найти похожие ветки 

 
аыпвапы   (2007-04-23 10:54) [0]

есть сервер и клиент.
работает по принципу подключился клиент сервер ему сразу ответ а клиент как получает данные отключается.
ок. все работает.
начинаю тестить закрываю запускаю сервер. тость зупустил прогу, вуключил, запустил, выключил ......
в один прекрасный момент у клиента не происходит отключение тоесть даже такое не помогает:
while(ClientSocket1.Active)do
 ClientSocket1.Close;

стоит актив ивсё (((

P.S. в событии ClientSocket1Error ставлю Abort что бы ерроры не вылазили.


 
Сергей М. ©   (2007-04-23 11:01) [1]

Для отключения клиента достаточно установить ClientSocket.Active := False или вызвать метод ClientSocket.Close


 
аыпвапы   (2007-04-24 07:11) [2]


> Для отключения клиента достаточно установить ClientSocket.
> Active := False или вызвать метод ClientSocket.Close


я же говорю что это не помогает.
я спрашиваю почему? и как это исправить?


 
Сергей М. ©   (2007-04-24 08:04) [3]


> я же говорю что это не помогает


А как это, по-твоему, должно помочь ? И кому помочь ?

Я же говорю - для отключения клиента достаточно установить ClientSocket.Active := False или вызвать метод ClientSocket.Close.


 
аыпвапы   (2007-04-24 08:42) [4]

ну конечно извените меня, но я вроде написал в самом начале что возникает такая ситуация когда эти действия не приносят никакого результата. я же неспрашиваю как это сделать. я говорю что я это делаю,но это не работает.

на мой ответ я получаю не тот ответ.


 
Сергей М. ©   (2007-04-24 08:48) [5]


> эти действия не приносят никакого результата


А у меня приносят. Контрвопрос - что я не так делаю ?)


> на мой ответ я получаю не тот ответ


Каков ответ - таков и ответ)

Ты же не спросил, почему, мол, Active остается True, если я только что установил его в False)


 
аыпвапы   (2007-04-24 12:29) [6]


> в один прекрасный момент у клиента не происходит отключение
> тоесть даже такое не помогает:
> while(ClientSocket1.Active)do
>  ClientSocket1.Close;
> стоит актив ивсё (((

это кусок вопроса заданый мною в самом начале.

Уважаемый Сергей приношу свои глубочайшие извенения что не рассказал очень трудного для понимания кода.
рассказываю:
цикл while будет выполнятся до тех пор пока свойство Active не станет равным false, что в свою очередь будет соотвецтвовать отключению от сервера. а а тело цикла содержит единственную команду ClientSocket1.Close котороя выполняет отключение, но в моем случае (Сергей напоминаю что это инногда возникает) отключение не происходит и цикл начинает бесконечно выполнятся.

Сергей польше программного кода у меня нет остальное написанно словами. может у тебя еще какие вопросы? не стесняйся спрашивай я срадостью постраюсь уточнить все моменты.


 
Сергей М. ©   (2007-04-24 12:43) [7]


> цикл while будет выполнятся до тех пор пока свойство Active
> не станет равным false


Оно и не станет False, если ClientType = ctNonBlocking и в теле цикла нет обработки Win-сообщений.

Сдесь есть два варианта - либо ClientType должен быть равен ctBlocking, либо после Active = False в тело цикла добавить строчку Application.Processmessages.

Но цикл этот сам по себе бестолков, потому как отключение на самом деле заведомо происходит (убедись сам на тестовом приложении, использующем событие OnClientDisconnect компонента TServerSocket).
А раз он бестолков, то и организовывать его ради проверки Active = False нет никакого смысла.


 
имя   (2007-09-10 21:44) [8]

Удалено модератором


 
ient   (2007-09-12 10:09) [9]

>ClientSocket1Error
>abort

errorcode := 0;
socket.close;

>while(ClientSocket1.Active)do
>  ClientSocket1.Close;

ClientSocket1.close;


 
имя   (2007-09-17 22:47) [10]

Удалено модератором


 
имя   (2007-09-19 10:11) [11]

Удалено модератором
Примечание: сорри за закрытую изза этого спама ветку. если  вопрос еще актуален перезадайте.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2008.07.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.535 c
15-1211813808
БарЛог
2008-05-26 18:56
2008.07.13
php. случайный элемент числового множества


2-1213343912
leonidus
2008-06-13 11:58
2008.07.13
Чтение данных из файла UTF-8


2-1213435120
Kaer
2008-06-14 13:18
2008.07.13
Как избавиться от "Out of memory"?


15-1210961167
@!!ex
2008-05-16 22:06
2008.07.13
Как писать на С++, а не на Дельфи?


2-1213338165
mefodiy
2008-06-13 10:22
2008.07.13
ComboBox в DBGridEh





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский