AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy: Verbindung trotz Disconnect nicht geschlossen?
Thema durchsuchen
Ansicht
Themen-Optionen

Indy: Verbindung trotz Disconnect nicht geschlossen?

Ein Thema von sECuRE · begonnen am 30. Okt 2006 · letzter Beitrag vom 31. Okt 2006
Antwort Antwort
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#1

Indy: Verbindung trotz Disconnect nicht geschlossen?

  Alt 30. Okt 2006, 16:58
Hi,

ich entwickle momentan ein Programm, welches die Indy-Komponenten benutzt um Daten durchs Internet zu schicken. Die Wahl fiel nur auf die Indys, da sie SSL unterstützen und Quelloffen sind, ansonsten bin ich von ihnen leider nicht sehr begeistert, da ich irgendwie nicht damit klar komme...

Nun zum eigentlichen Problem: Bei mir läuft das Programm problemlos und beim Kunden sind irgendwann keine Internetverbindungen mehr möglich, das Programm meldet zuerst Connection refused, danach Timeout. Es scheint sich also der Router aufzuhängen.

Meine Vermutung ist nun, dass die Sockets nicht richtig zugemacht werden (das Programm macht für jede Datei einen auf, und davon sollen ca 500 versendet werden). In "netstat -an" werden sie definitiv noch als offen angezeigt, solange das Programm läuft.

Hier der entsprechende Sourcecode am Server:
Delphi-Quellcode:
procedure TServerForm.OnExecute(AThread: TIdThread);
begin
  // Weggelassen: Code um festzustellen, was für ein Request es ist
  HandleFileUpload(AThread);
  AThread.Connection.Disconnect;
end;
Und am Client:
Delphi-Quellcode:
FSocket.Disconnect;
FreeAndNil(FSocket);
Davor befinden sich einige ReadLn, WriteLn und WriteStream beziehungsweise ReadStream-Anweisungen auf beiden Seiten, sonst nichts. Der Socket wird folgendermaßen erzeugt:
Delphi-Quellcode:
function CreateSocket:TIdTCPClient;
begin
  result:=TIdTCPClient.Create(nil);
  with result do begin
    IOHandler:=TIdSSLIOHandlerSocket.Create(result);
    with TIdSSLIOHandlerSocket(IOHandler) do begin
      SSLOptions.Method:=sslvTLSv1;
      SSLOptions.Mode:=sslmClient;
      OnStatus:=SSLStatus;
    end;
    Host:=FHost;
    Port:=FPort;
  end;
end;
In netstat sieht das ganze dann so aus:
Code:
TCP   127.0.0.1:3001         127.0.0.1:1540         WARTEND
TCP   127.0.0.1:3001         127.0.0.1:1541         WARTEND
TCP   127.0.0.1:3001         127.0.0.1:1542         WARTEND
TCP   127.0.0.1:3001         127.0.0.1:1543         WARTEND
Woran kann das liegen / Was mache ich falsch?

Vielen Dank im Voraus und viele Grüße,
sECuRE
  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#2

Re: Indy: Verbindung trotz Disconnect nicht geschlossen?

  Alt 31. Okt 2006, 13:07
Hi,

um das Thema nochmal zu pushen und mehr Informationen zu geben:
Es sieht so aus, als sei das ein Problem, das mit der Verwendung von SSL zusammenhängt. Ich kenn' mich leider zu wenig aus mit dem Indy-Sourcecode, aber beim Debugging konnte ich keinen Aufruf der Close-Methode des Binding-Objekts finden.

Danke & cu
  Mit Zitat antworten Zitat
TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Indy: Verbindung trotz Disconnect nicht geschlossen?

  Alt 31. Okt 2006, 14:07
Hast du denn auch beide DLLs (libssl32.dll oder so und noch ne andere) bei dir eingebunden in den Ordner?
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#4

Re: Indy: Verbindung trotz Disconnect nicht geschlossen?

  Alt 31. Okt 2006, 15:47
Hi,

ja, natürlich, sonst würde ja SSL gar nicht funktionieren. Die Übertragung an sich funktioniert, nur das Schließen der Verbindung nicht.

Da ich nun aber auf die Synapse-Units gestoßen bin, denke ich, dass ich die Indys komplett aus dem Projekt werfe. Synapse kann ebenfalls SSL und funktioniert bisher sehr unkompliziert und zuverlässig.

Danke & cu
  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 11:22 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