AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem mit Indy (Not Connected)
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Indy (Not Connected)

Ein Thema von Bubblegun · begonnen am 26. Nov 2003 · letzter Beitrag vom 26. Nov 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Bubblegun
Bubblegun

Registriert seit: 29. Okt 2003
Ort: Schweiz
20 Beiträge
 
Delphi 7 Professional
 
#1

Problem mit Indy (Not Connected)

  Alt 26. Nov 2003, 14:25
Hi

Ich schreibe momentan an einem Chat. Mein Problem ist, dass ich einen
Fehler bekomme sobald ich Disconnecte.
TCPClient meldet dann "Not Connected". Je länger ich mit dem Disconnect
warte desto mehr geht das Programm in den Timer desto mehr "Not Connected"
fehler werden angezeigt.

Delphi-Quellcode:
procedure TClientForm.TCPClientConnected(Sender: TObject);
begin
  Messages.Lines.Add('Connected to '+ TCPClient.Host);
  TCPClient.WriteLn(ClientName);
  TBConnect.Down := True;
  TBConnect.Hint := 'Disconnect from Server';
  Timer.Enabled := True;
end;
Delphi-Quellcode:
procedure TClientForm.TimerTimer(Sender: TObject);
var
  Msg : String;
begin
  if TCPCLient.Connected = True then begin
    Msg := TCPClient.ReadLn('', 5);
    if Msg <> 'then begin
      if Msg[1] <> '@then begin
        Messages.Lines.Add(Msg);
      end;
    end;
  end;
end;
Delphi-Quellcode:
procedure TClientForm.TCPClientDisconnected(Sender: TObject);
begin
  Timer.Enabled := False;
  Messages.Lines.Add('Connection closed');
  TBConnect.Hint := 'Connect to Server';
end;
(Dies sind nur einige(Wichtige?) ausschnitte aus dem Programm)

Ich hoffe ihr könnt mir helfen denn ich bin mit meinem Latein am ende.


Mfg
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Problem mit Indy (Not Connected)

  Alt 26. Nov 2003, 14:56
Hi
Tritt das Problem auf, wenn du die Anwendung aus Delphi heraus startest, oder auch wenn du die *.exe normal unter Windows ausführst?

Wie disconnectest du denn?

Achja, und den Satz versteh ich nicht:
Zitat:
Je länger ich mit dem Disconnect
warte desto mehr geht das Programm in den Timer desto mehr "Not Connected"
fehler werden angezeigt.
MfG
Christian
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Benutzerbild von Bubblegun
Bubblegun

Registriert seit: 29. Okt 2003
Ort: Schweiz
20 Beiträge
 
Delphi 7 Professional
 
#3

Re: Problem mit Indy (Not Connected)

  Alt 26. Nov 2003, 15:03
Der Fehler tritt in beiden Fällen auf
  Mit Zitat antworten Zitat
Benutzerbild von Bubblegun
Bubblegun

Registriert seit: 29. Okt 2003
Ort: Schweiz
20 Beiträge
 
Delphi 7 Professional
 
#4

Re: Problem mit Indy (Not Connected)

  Alt 26. Nov 2003, 15:04
Zitat:
Achja, und den Satz versteh ich nicht:
Das TimeOut des timers ist bei 1000.
Wenn das Programm 3sec lauft gibt es 3 (gleiche) Fehler.
Wenn es 4sec lauft 4 usw
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Problem mit Indy (Not Connected)

  Alt 26. Nov 2003, 15:20
Hi
bau in die Prozedur die die Msg ausliest mal einen try-except Block:

Delphi-Quellcode:
procedure TClientForm.TimerTimer(Sender: TObject);
var
  Msg : String;
begin
  if TCPCLient.Connected = True
    then begin
           try
           Msg := TCPClient.ReadLn('', 5);
           if (Msg <> '') and (Msg[1] <> '@')
             then Messages.Lines.Add(Msg);
           except
             showmessage ('Fehler beim lesen der Msg' + E);
           end;
         end;
end;
Den Code hab ich ohne zu testen umgebaut. Kann sein das das E in der Showmessage nicht funktioniert. Wenns nicht geht schmeißt du es einfach raus.

Starte dann die exe unter Windows nicht unter Delphi. Kommt dann die Fehlermeldung, dann ist der Timer nach dem disconnect noch aktiv.

Es ist aber eh sinnvoller den Timer schon im button-Klick auf active= false zu setzen. probiers einfach mal aus.
MfG
Christian
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Benutzerbild von Bubblegun
Bubblegun

Registriert seit: 29. Okt 2003
Ort: Schweiz
20 Beiträge
 
Delphi 7 Professional
 
#6

Re: Problem mit Indy (Not Connected)

  Alt 26. Nov 2003, 15:31
I.
mit einem try except block habe ich es auch schon ausprobiert.
leider ist das ergebnis das gleiche. egal ob ich das programm in delphi oder
in windows starte.

II.
Der Timer wird deaktiviert. Ich habe es per Step-by-Step geprüft

III.
der fehler tritt auch auf wenn ich den timer in der button-disconnect prozedur
deaktiviere.
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Problem mit Indy (Not Connected)

  Alt 26. Nov 2003, 15:45
Hi
Kannst du Server und CLient mal hochladen? Wenn du alles mit try-except unterdrückst würde kein Fehler kommen,
wenn du das prog unter Windows startest.

MfG
Christian
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Benutzerbild von Bubblegun
Bubblegun

Registriert seit: 29. Okt 2003
Ort: Schweiz
20 Beiträge
 
Delphi 7 Professional
 
#8

Re: Problem mit Indy (Not Connected)

  Alt 26. Nov 2003, 15:50
Also ich habe mal den Client & die Source vom Client hochgeladen.
Der Server ist momentan noch keine eigenentwicklung sondern
der Server von der Chat Demo der Indy Komponenten.
Angehängte Dateien
Dateityp: exe cbserv.exe (592,5 KB, 6x aufgerufen)
Dateityp: pas login.pas (2,3 KB, 6x aufgerufen)
Dateityp: pas client.pas (6,9 KB, 9x aufgerufen)
Dateityp: exe tcpclient.exe (904,5 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Problem mit Indy (Not Connected)

  Alt 26. Nov 2003, 16:08
Hm, also einen Fehler hab ich nicht gefunden. Schreib aber das Timer.Active := false unbedingt in den Disconnect-Button.

Wie hast du denn das Intervall eingestellt? Das sollte so ungefähr bei 500ms sein.

Achja, nochwas. Der Indy-Demo Chat ist relativ schlecht. Wenn du eine gute Demo haben willst dann guck dir mal die DEMO idTCPDemo von den Indys an. Die funktioniert mit Threads und stürzt auch nicht ab, wenn du die Form auf dem Desktop bewegst.

MfG
Christian
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Benutzerbild von Bubblegun
Bubblegun

Registriert seit: 29. Okt 2003
Ort: Schweiz
20 Beiträge
 
Delphi 7 Professional
 
#10

Re: Problem mit Indy (Not Connected)

  Alt 26. Nov 2003, 16:17
Also die De-/Aktivierung habe ich mal in den Button geschrieben.
Das hat aber nicht viel geholfen. Mein Intervall ist bei 500ms.

Wo bekomme ich diese Demo?
In meinem Indy Ordner finde ich keine idTCPDemo.

Vielen Dank für deine Hilfe!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz