![]() |
Indy TCPClient + MMS-Protokoll
Hi,
Ich benutze folgenden Code, um eine Datei über HTTP 1.0 ziehen (und nein, ich will nicht idHTTPClient benutzen ;) ):
Delphi-Quellcode:
Es handelt sich hier um das MMS-Protokoll (über HTTP). Leider erhalte ich nicht alle Daten. Ich erhalte immer nur 1.800.403 Bytes, anstatt fast 3MByte. Ausßerdem blockiert bei ca. 1,7MByte das Programm, danach kommen ein paar Daten die da aber nicht sein sollten :).
procedure TForm1.Button1Click(Sender: TObject);
var send:tstringlist; stream:tfilestream; begin stream := tfilestream.Create('d:\foo.wmv', fmCreate); send := tstringlist.Create; send.Clear; send.Add('GET /foobar.wmv HTTP/1.0'); send.Add('Accept: */*'); send.Add('User-Agent: NSPlayer/4.1.0.3928'); send.Add('Host: localhost'); send.Add('Pragma: no-cache,rate=1.000000,stream-time=0,stream-offset=4294967295:4294967295,request-context=4,max-duration=2147548740'); send.Add('Pragma: xPlayStrm=1'); send.Add('Pragma: xClientGUID={5B704FE1-EFB9-49F5-A781-1DA8B8F0A23E}'); send.Add('Pragma: stream-switch-count=4'); send.Add('Pragma: stream-switch-entry=ffff:2:0 ffff:3:0 ffff:4:2 ffff:5:2'); i.Host := 'localhost'; i.Port := 80; i.Connect(); i.SendCmd(send.Text); i.ReadStream(stream, -1, true); send.Destroy; stream.Destroy end; Habe ich vergessen ein Size zu setzen? Oder ist vielleicht mein Header verkehrt? Ich habe den Header mitgesnifft, als MPlayer den Stream saugte - er sollte also richtig sein. Irgendwer eine spontane idee, was ich verkehrt gemacht habe? MfG Daniel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 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