Einzelnen Beitrag anzeigen

ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#3

AW: Error Event für TIdTCPClient

  Alt 14. Okt 2012, 15:48
Ich bastel gerade mit der WebCam und der Übertragung via TCPClient an den TCPServer von INDY. Ich bekomme auch ein Bild, wenn ich das Video mit einem Button starte und stoppe es über einen anderen Button. Allerdings ist das stoppen immer etwas heikel, denn ich schicke zum beenden des Streams dem Clienten eine Nachricht, der trennt sich dann. Dann beendet sich der Server und die Buttons nehmen wieder den Anfangszustand an (Start ist aktiv, Stop ist inaktiv). Aber was ist, wenn das Internet mal stutzt? Dann beendet sich der Server, bevor der Client die Nachricht erhalten hat und es gibt eine Exception. Ich habe mir auch überlegt, die Verbindung vom Server aus sauber zu trennen:

Delphi-Quellcode:
procedure TfrmCam.CamStop;
var
  Clients: TList;
  i: Integer;
begin
  BtnStop.Enabled := false;
  Clients := CamServer.Contexts.LockList;
  try
    for i := 0 to Clients.Count - 1 do
      TIdContext(Clients[i]).Connection.Disconnect;
  finally
    CamServer.Contexts.UnlockList;
  end;
  CamServer.Active := false;
  RVideo.Picture := BImage.Picture; {Das VideoFenster bekommt eine WebCam als Icon aus einem anderen Image, damit es nciht so langweilig aussieht :)}
  BtnStart.Enabled := true; // Buttons anpassen.
Aber hier gibt es auch eine Exception. Da steht dann, das die Software einen Verbindungsabbruch verursacht (SocketFehler #10053).
Lukas

Geändert von ByTheTime (14. Okt 2012 um 15:52 Uhr)
  Mit Zitat antworten Zitat