AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy TCPclient Disconnect Problem
Thema durchsuchen
Ansicht
Themen-Optionen

Indy TCPclient Disconnect Problem

Ein Thema von th_bone · begonnen am 6. Dez 2005 · letzter Beitrag vom 10. Mär 2017
Antwort Antwort
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#1

AW: Indy TCPclient Disconnect Problem

  Alt 7. Mär 2017, 21:31
Hallo zusammen,

ich muss den doch schon relativ alten Beitrag noch einmal aufgreifen.

Ich versuche mich wechselnd auf mehrere Arduinos connecten. Daher ist es wichtig, dass die Verbinung jedesmal gesichert getrennt wird. Folgender Test:

Delphi-Quellcode:
try
    Mainform.TCPClient1.host:='192.168.1.177';
    Mainform.TCPClient1.Port:=23;
    Mainform.TCPClient1.Connect;
    Mainform.TCPClient1.IOHandler.WriteLn(#13);
    sleep(100);
    for i:=1 to 5 do Begin
      x:= IntTostr(i mod 2);
      Mainform.TCPClient1.IOHandler.WriteLn('setport #'+ (edit1.text)+','+x );
      sleep(100);
    end;
    showmessage('Fertig');
finally
    Mainform.TCPClient1.Disconnect;
end;

Parallel dazu habe ich mal die beiden Events OnConnected und OnDisconnected belegt, welche auch beide aufgerufen werden:

Delphi-Quellcode:
procedure TMainform.TCPClient1Connected(Sender: TObject);
begin
Showmessage('Connected');
end;

procedure TMainform.TCPClient1Disconnected(Sender: TObject);
begin
showmessage('Disconnected');
end;
Trotzdem, wird beim 2 Aufruf von Mainform.TCPClient1.Connect eine Exception geworfen, die sagt, dass die Verbindung bereits bestehen würde (EIdAlreadyConnected - Verbindung besteht bereits).

Ist diese Version ungeschickt, oder das Ergebnis ein Bug?

Ich verwende Delphi 10.1 Berlin Starter in der Standard-Installation (Indy 10.1.5 ?).

Vielen dank für jede Hilfe!
MFG
Steffen
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#2

AW: Indy TCPclient Disconnect Problem

  Alt 8. Mär 2017, 17:29
Hallo zusammen,

ich habe noch ein wenig experimentiert, jedoch keine Lösung gefunden, solange ich den TCPClient über die VCL einfüge.
Abhilfe hat jedoch geschafft, wenn ich ihn dynmaisch zur Laufzeit erstelle:

Delphi-Quellcode:
procedure TMainform.Button3Click(Sender: TObject);
var TCPClient2: TIdTCPClient;
    i:integer;
    x:string;
begin
try
  TCPClient2:=TIdTCPClient.Create(nil);
  TCPClient2.host:='192.168.1.177';
  TCPClient2.Port:=23;
  TCPClient2.Connect;
  TCPClient2.IOHandler.WriteLn(#13);
    sleep(100);
    for i:=1 to 5 do Begin
      x:= IntTostr(i mod 2);
      TCPClient2.IOHandler.WriteLn('setport #'+ (edit1.text)+','+x );
      sleep(100);
    end;
    showmessage('Fertig');
finally
    TCPClient2.Free;
end;

end;
So lässt sich die Prozedur zumindest mehrmals hintereinander ausführen, was andersrum nicht möglich war. Das könnte zwar nun eine Lösung sein, mich würde aber trotzdem interessieren, ob ich im esten Beispiel einen Fehler hatte, oder ob dies tatsächlich ein Bug ist.
MFG
Steffen
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: Indy TCPclient Disconnect Problem

  Alt 8. Mär 2017, 19:15
Versuch' es mal bitte mit  TCPClient1.Disconnect(True);
Hatte mit TIDHttp auch Probleme.

Nachdem ich hier im Forum irgendwo gelesen hatte, dass man Disconnect doch bitte mit Parameter Disconnect(True) aufrufen möge, hab' ich das geändert und seit dem keine Probleme mehr.

Vorher musste ich entweder das Programm nach 'nem Fehler neu starten oder halt bei jedem Aufruf 'ne neue Instanz von TIDHTTP herstellen und anschließend freigeben.
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#4

AW: Indy TCPclient Disconnect Problem

  Alt 8. Mär 2017, 19:47
Hallo Stephan,

keine Änderung...die Fehlermeldung kommt noch immer.
MFG
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.450 Beiträge
 
Delphi 12 Athens
 
#5

AW: Indy TCPclient Disconnect Problem

  Alt 9. Mär 2017, 06:43
Moin...
Zitat:
Abhilfe hat jedoch geschafft, wenn ich ihn dynmaisch zur Laufzeit erstelle
...das ist auch die einzige Variante die funktioniert. Sowas hatte ich auch mal. (dunkel in Erinnerung)
Delphi-Quellcode:
try
  TCPClient2:=TIdTCPClient.Create(nil);
...aber das Create gehört vor das try.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Indy TCPclient Disconnect Problem

  Alt 9. Mär 2017, 08:00
mich würde aber trotzdem interessieren, ob ich im esten Beispiel einen Fehler hatte, oder ob dies tatsächlich ein Bug ist.
Wenn es tatsächlich Indy 10.1.5 ist, dann ist es eine sehr alte Version, die einen Bug enthalten könnte. Aktuell ist schon seit langer Zeit Indy 10.6.*
Michael Justin
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#7

AW: Indy TCPclient Disconnect Problem

  Alt 9. Mär 2017, 20:25
Mmmh, OK...war die beim neuen Starter beiliegende Version.
Kann ich die Komponenten einfach updaten (Indy.Sockets (VCL) laden und los), oder gibt es da irgendetwas zu beachten?

EDIT: Irgendwie komme ich mit der Seite nicht wirklich klar.... habt ihr ggf. einen direkten Link?
MFG
Steffen

Geändert von WIng2005 ( 9. Mär 2017 um 20:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.450 Beiträge
 
Delphi 12 Athens
 
#8

AW: Indy TCPclient Disconnect Problem

  Alt 10. Mär 2017, 06:59
Moin...
Wenn du die aktuelle Starter hast, brauchst erst mal nicht upzudaten...
Die Version sollte irgendwas wie: gsIdVersion = '10.6.2.5341' sein.
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#9

AW: Indy TCPclient Disconnect Problem

  Alt 10. Mär 2017, 08:47
Hallo,
OK, wie kann ich dass genau ermitteln? Hatte nur in der Hilfe ein "Bild" entdeckt, welches diese Verion zeigt.
MFG
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.450 Beiträge
 
Delphi 12 Athens
 
#10

AW: Indy TCPclient Disconnect Problem

  Alt 10. Mär 2017, 08:56
Schaust du in die C:\Program Files (x86)\Embarcadero\Studio\18.0\source\Indy10\System \IdVers.inc
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz