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

Вниз

Socket. Восстановление связи.   Найти похожие ветки 

 
TButton   (2003-10-05 01:18) [0]


procedure TForm1.gateError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
case ErrorEvent of
eeGeneral:
begin
if MessageDlg("Связь с сервером была потеряна. Восстановить?",mtWarning,[mbyes,mbNo],0)=mrNo
then Close
else
begin
gate.Close;
log("Система: Соединение прервано");
gate.Open;
end;

end;
eeSend:;
eeReceive:;
eeConnect:
begin
if MessageDlg("Произошел сбой при подключении к серверу."
+Chr(13)+"Повторить попытку?",mtWarning,[mbyes,mbNo],0)=mrNo
then Close
else
begin
gate.Close;
log("Система: Соединение прервано");
gate.Open;
end;
end;
eeDisconnect:;
eeAccept:;
else
end;
ErrorCode:=0;
end;

procedure TForm1.gateDisconnect(Sender: TObject; Socket: TCustomWinSocket);
begin
log("Система: Соединение прервано");
if MessageDlg("Связь с сервером была потеряна. Восстановить?",mtWarning,[mbyes,mbNo],0)=mrNo
then Close
else
begin
gate.Close;
log("Система: Восстанавливаем связь");
gate.Open;
end;

end;


внимание вопрос... :)
ситуация такая, в onError все нормально работает. А вот в onDisconnect - не очень, т.е. я убиваю сервак в клиенте случается дисконнект, выводится сообщения "потеряно соединение", задается вопрос, отвечаю "да", выводится "восстанавливаю соединение" и все. тишина. т.е. gate.Close и gate.Open выполняются, но при этом ничего (заметного) не происходит. т.е. сервера нет, по идее должен случиться еррор ееКоннект, но он не случается, вообщето еррор не случается вообще, это наводит на подозрение "а что-то здесь все-таки не так..." хотелось бы услашать мнения, может быть даже советы по етому поводу.


 
TButton   (2003-10-05 17:07) [1]

наверное тема не очень популярная...


 
Hogo   (2003-10-06 07:59) [2]

Может не надо коннектится в обработчике ошибок?


 
TButton   (2003-10-06 13:37) [3]

так не коннектится в дисконнекте. в обработчике ошибок все ровно.


 
Digitman   (2003-10-06 14:13) [4]

в обработчике OnDisconnect() запусти таймер
в обработчике таймера останови таймер и выполни gate.open


 
Hogo   (2003-10-07 06:42) [5]

Я делаю так-же как > Digitman , при дисконнекте запускаю таймер и через определенное время пытаюсь снова подключиться, надо еще на сервере обработать что клиент отвалился, для этого у меня они постоянно обмениваются сообщениями, типа говорят "я здесь" :)



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

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

Наверх





Память: 0.45 MB
Время: 0.003 c
4-11753
Евгешка
2003-10-10 20:16
2003.12.04
ListView_GetItemPosition рабочего стола


6-11655
Yrtimd
2003-10-09 02:43
2003.12.04
Терминатор Интернет-соединения


6-11649
Peter
2003-10-09 16:04
2003.12.04
Почему???


1-11605
KommandorDi
2003-11-25 18:31
2003.12.04
Неправильная работа функции Date


6-11680
ss300
2003-10-06 11:03
2003.12.04
Кодировка в отправляемом письме





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