Witam!
Pisze prosta aplikacje do komunikacji typu Klient-Serwer w oparciu o komponentny TClientSocket oraz TServerSocket. Chcialbym osiagnac cos takiego :

  1. Polaczenie aktywne (mozliwa komunikacja)
  2. Server z niewiadomych dla klienta przyczyn zostaje odlaczony od sieci (dajmy na to na 3h)
  3. Przez ten czas Client jest caly czas wlaczony do sieci i proboje sie laczyc z serwerem, poki ten znow nie bedzie aktywny
  4. W momencie jak Server pojawia sie w sieci, następuje wznowienie polaczenie z Clientem

Niby proste i oczywiste, wywoluje sobie w ClientSocket.OnDisconnect cos takiego :

procedure TForm1.ClientSocketDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
	MainSocket.Active := false;
	MainSocket.Host := '192.168.2.103';
	MainSocket.Port := 1200;
	MainSocket.Active := true;
end;

a w ClientSocket.OnError :

procedure TForm1.ClientSocketError(Sender: TObject; Socket: TCustomWinSocket;
  ErrorEvent: TErrorEvent; var ErrorCode: Integer);
var
  Kod: integer;
begin
  Kod := ErrorCode;
  ErrorCode := 0;
  case Kod of
    10060:
      begin
        Memo1.Lines.Add('Lacze ponownie');
        ClientSocket.Active := True;
      end;
  else
    begin
      Memo1.Lines.Add('Wystapil blad o numerze '+IntToStr(Kod));
      
    end;
  end;
end;

No ale niestety nie dziala, ani nie wywala zadnego innego bledu. nic sie nie dzieje po wlaczeniu do sieci Servera.

Co ciekawe, metoda ktora napisalem dziala w przypadku gdy mamy najpierw wylaczony serwer, a nastepnie odpalamy klienta i dokonujemy pierwszego zestawienia polaczenia. Wtedy metoda opisana przeze mnie dziala doskonale, i w momencie gdy przylacze do sieci server polaczenie jest tworzone. Problem jest ze wznawianiem zerwanego przez serwer polaczenia.

Jakies pomysly??

PS -> Osiagnalem zamierzony efekt tworzac nowy watek ktory wywolywal mi funkcje OnCreate formatki :P malo profesjonalnie, ale dziala. Wciaz czekam na sugestie :)))