Autor Beitrag
Martin77
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 282

XP Prof
D6 Prof, D7 Personal, D7 Enterprise, D8 personal
BeitragVerfasst: Do 18.11.04 19:23 
Hallo zusammen.

Ich habe eine Frage in Bezug auf das Lesen aus einem TCP Datenstrom.

Der Server den Ich befrage liefert auf einem Port unentwegs Daten. Ich würde jetzt gerne z.B. immer 100 KB an Daten "anzapfen", diese verarbeiten und dann wieder laden.


Die Daten die dort gesendet werden wiederholen sich immer, allerdings mit kleinen änderungen.

Jetzt habe Ich aber keine Idee wie Ich das bewerkstelligen kann/soll.

Folgenden Versuch habe Ich zuerst gemacht:


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
  IdTCPClient1.Host:= '192.168.2.150';
  IdTCPClient1.Port:= 31338;
  IdTCPClient1.Connect;
  slErgebnis:= TStringList.Create;
  IdTCPClient1.SendCmd('GET /  0022  HTTP/1.0\r\n\r\n');
  IdTCPClient1.ReadStrings(TStrings(slErgebnis));
  Verarbeiten;
  slErgebnis.Free;
  IdTCPClient1.Disconnect;


Allerdings kehrt die Routine aus dem ReadStrings nicht mehr zurück.


Ich verwende die Indy Komponenten, bin jedoch nicht auf diese angewiesen, hat vielleicht jemand eine gute Idee?
Livingmind
Hält's aus hier
Beiträge: 10

WIN NT
D6 Prof
BeitragVerfasst: Fr 19.11.04 09:50 
Vielleicht hilft dir das hier:
www.delphi-source.de...torials/indy/?page=5

Gruß,
L.
Martin77 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 282

XP Prof
D6 Prof, D7 Personal, D7 Enterprise, D8 personal
BeitragVerfasst: Sa 20.11.04 11:09 
Hallo.

Nein, das hilft mir leider nicht.

Es handelt sich wie gesagt um einen Datenstrom. Die Datei ist ja irgendwann zu ende. Den Stream den Ich auslese der ist jedoch unbegrenzt, ähnlich mit einem Internetradio. Die senden ja auch ununterbrochen.


Martin
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Di 23.11.04 08:26 
Nun, verwende ReadBuffer, um einen bestimmten Speicherbereich erst mal mit Daten zu füllen, anschliessend wertest du diesen Bereich dann aus und rufst erneut ReadBuffer auf.

Cu,
Udontknow