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

Вниз

TIdTCPServer &amp; TIdTCPClient <OnDisconnect>   Найти похожие ветки 

 
ДимДимыч   (2005-09-05 15:25) [0]

Возник вопросик: почему не происходит событие OnDisconnect. Код на сервере :

procedure TfrmMain.SrvDisconnect(AThread: TIdPeerThread);
var
 Client: TSimpleClient;
 li: TListItem;
begin
 showmessage(",sdfbvjsdfbsndj");
 Client:=TSimpleClient(AThread.Data);
 li:=TListItem(Client.ListItem);
 li.Destroy;
 LogAdd(002,"Client at "+Client.IP+" disconnect",3);
 Client.Destroy;
end;


Код на клиенте :


procedure TForm1.Button2Click(Sender: TObject);
begin
 Cln.Disconnect;
end;


В примерах посмотрел - там событие OnDisconnect на сервере не обрабатывается, но мне нужно дестроить кучу объектов при отключении клиента. Так что обрабатывать его необходимо.
Не могу понять где прокол.


 
Digitman ©   (2005-09-05 15:34) [1]


> Не могу понять где прокол


в TIdTCPServer событие OnDisconnect возникает в ходе исполнения метода PeerThread.Connection.Disconnect

если этот метод не вызван тобой, то и событие не возникнет


 
Eraser ©   (2005-09-05 15:37) [2]

ДимДимыч   (05.09.05 15:25)

Дестрой объекты вконце OnExecute.


 
ДимДимыч   (2005-09-05 15:57) [3]

>Eraser ©   (05.09.05 15:37) [2]
 Может я не правильно выбрал компоненты, но мне необходимо сохранять все объекты в течении всего времени соединения, а это довольно долго, и событие OnExecute будет возникать не один раз.

>Digitman ©   (05.09.05 15:34) [1]
 А как можно сделать, чтобы дисконнект инициировался клиентом?


 
Digitman ©   (2005-09-05 16:07) [4]


> как можно сделать, чтобы дисконнект инициировался клиентом?


он, дисконнект, и инициируется клиентом

но поскольку Инди работает с гнездами в синхронном блокирующем режиме никаких асинхронных нотификаций о событиях транспорта ожидать не следует.

читаем справку, например, к методу ReadLn:

ReadLn will return an empty string ("") if the peer connection is prematurely closed or a time-out occurs

это о чем-то говорит тебе ?


 
ДимДимыч   (2005-09-05 16:56) [5]

Примерно понял. А нет ли в Д7 Чего-нибудь похожего на сокеты из Д5?


 
Digitman ©   (2005-09-05 17:00) [6]

отчего ж нет ?

есть.

как раз те самые что и в Д5 - TClient/Server (для появления их в палитре необходимо установить дизайн-тайм-пакет dclsockets70.bpl из (%DELPHI%)\BIN)


 
ДимДимыч   (2005-09-05 19:11) [7]

>Digitman ©   (05.09.05 17:00) [6]
спасибо



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

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

Наверх




Память: 0.46 MB
Время: 0.015 c
2-1133260791
nickmas
2005-11-29 13:39
2005.12.18
Компонент TabControl


6-1124823636
Korvet
2005-08-23 23:00
2005.12.18
Подключение к сети


2-1133723656
De1uxe
2005-12-04 22:14
2005.12.18
Компонент для деления изображения на ленты


14-1132500496
Piter
2005-11-20 18:28
2005.12.18
Помогите, пожалуйста, опознать песенку...


2-1133247340
taraban
2005-11-29 09:55
2005.12.18
поможите люди





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский