AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy TCP Streams senden/empfangen
Thema durchsuchen
Ansicht
Themen-Optionen

Indy TCP Streams senden/empfangen

Ein Thema von XXcD · begonnen am 9. Mai 2010 · letzter Beitrag vom 9. Mai 2010
Antwort Antwort
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#1

Indy TCP Streams senden/empfangen

  Alt 9. Mai 2010, 12:01
Hallo,
ich versuche im Moment in meinem Chat Streams zu empfangen, ich weiß aber nicht ob das so richtig ist da manchmal noch fehler auftreten.

Delphi-Quellcode:
var
ReadStream: TStream;
begin
if IdTCPClient1.Connected then
begin
ReadStream:= TMemoryStream.Create;
try
try
IdTCPClient1.IOHandler.ReadStream(ReadStream, -1, false);
ReadStream.Seek(0,0);
ReadData(ReadStream);
Except

end;
finally
ReadStream.Free;
end;
end
else
begin
Timer1.Enabled:=false;
ShowError('Verbindung unterbrochen!');
end;
end;
Das ganze läuft in einem Timer und immer wenn nichts zum empfangen da ist wird das Except ausgelöst.
Kann man das auch irgendwie eleganter lösen?
Ich weiß einfach nicht ob ich das so richtig mache, wäre nicht schlecht wenn sich das mal jemand anschauen würde.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#2

Re: Indy TCP Streams senden/empfangen

  Alt 9. Mai 2010, 16:35
1.) TIdTCPClient hat ein .ReadStream . Dafür muss man nicht den IOHandler direkt bemühen.
2.) Code-Schnipsel kann man auch einrücken. Dann sind sie für denjenigen, der den Fehler suchen soll leichter zu lesen und der Entwickler profitiert ganz nebenbei auch noch von dem leichter zu lesenden Code.
3.) Jeder Stream kennt intern seine Länge. Wenn du vorher prüfst, ob überhaupt was im Stream drin steht, kann dein Programm dann auch sicher sein, dass es nicht mit leeren Streams zu kämpfen hat (.Size <> 0). [Bezug auf Zeile 11]
4.) Ja schön, es tritt eine Exception auf. Wo? Und ist das vllt. eine ETopSecret?

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Indy TCP Streams senden/empfangen

  Alt 9. Mai 2010, 18:23
Ich bekomme in dem Exception von dem try Block bei dem Readstream ein Error
und zwar Read Timeout. Deshalb wollte ich auch wissen ob man das irgendwie ohne Exceptions lösen kann.
Also dass beim lesen keine Fehler entstehen.
  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 04:15 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