AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Stream über idhttp versenden?
Thema durchsuchen
Ansicht
Themen-Optionen

Stream über idhttp versenden?

Ein Thema von Chris1986 · begonnen am 18. Apr 2004 · letzter Beitrag vom 18. Apr 2004
 
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#1

Stream über idhttp versenden?

  Alt 18. Apr 2004, 14:59
Hi,
ich versuche einen Stream mit Hilfe der idhttp-Komponenten zu versenden. Das Verbinden klappt problemlos, aber das Versenden des Streams macht Probleme. Der Client versendet zwar den Stream, aber beim Server kommt nichts an

Hier der Quelltext des Clients:
Delphi-Quellcode:
procedure TClient.btconnectClick(Sender: TObject);
begin
  with httpClient do
  begin
    disconnect;
    host := lbedHost.Text;
  memStatus.Lines.Add('verbinde mit '+httpClient.Host); //memStatus = TMemo
    connect(5000);
    if not connected
      then begin
             memStatus.Lines.Add('Verbindung zu '+httpClient.Host+' ist fehlgeschlagen');
             exit;
           end;
  end;
  memStatus.Lines.Add('verbunden mit '+httpClient.Host);
end;

procedure TClient.btsendClick(Sender: TObject);
var Stream: TMemoryStream;
begin
  memStatus.Clear;
  memStatus.Lines.Add('Öffne Opendialog . . .');
  if not Opendialog.Execute
    then begin
           memStatus.Lines.Add('. . . abgebrochen.');
           exit;
         end
    else memStatus.Lines.Add('. . . Datei "'+extractfilename(Opendialog.FileName)+'" zum senden ausgewählt.');
  Stream := TMemoryStream.Create;
  memStatus.Lines.Add('TMemoryStream erzeugt');
  Stream.LoadFromFile(Opendialog.FileName);
  Stream.Position := 0;
  memStatus.Lines.Add('Datei erfolgreich in Stream geladen');
  with httpClient do
  begin
    OpenWriteBuffer;
  memStatus.Lines.Add('versende Stream');
    WriteStream(Stream);
  memStatus.Lines.Add('Stream versendet');
    CloseWriteBuffer;
  end;
  Stream.Free;
end;
Und der Code des Servers:
Delphi-Quellcode:
procedure TServer.btactivateClick(Sender: TObject);
begin
  with httpServer do
  begin
    active := false;
    DefaultPort := strtoint(lbedPort.Text);//lbedPort = TLabeledEdit
    active := true;
  end;
end;

procedure TServer.httpServerExecute(AThread: TIdPeerThread);
var Stream: TMemoryStream;
begin
  Stream := TMemoryStream.Create;
  memStatus.Lines.Add('TMemoryStream erzeugt');
  Stream.Clear;
  memStatus.Lines.Add('Stream zurückgesetzt');
  memStatus.Lines.Add('Empfange Stream . . . ');
  AThread.Connection.ReadStream(Stream);
  memStatus.Lines.Add('Stream erfolgreich empfangen');
  memStatus.Lines.Add('öffne Savedialog . . .');
  if not Savedialog.Execute
    then begin
           memStatus.Lines.Add('. . . abgebrochen.');
           Stream.free;
           memStatus.Lines.Add('Stream freigegeben');
           exit;
         end;
 memStatus.Lines.Add('Stream abgespeichert unter: '+Savedialog.FileName);
end;
Ich weiß nicht wodran es liegt. Vielleicht wird Onexecute im Server nicht richtig ausgeführt. Steht allerdings kein Code in der Onexecute Prozedur stürzt das Programm mit einer Fehlermeldung ab
Auch dieser Thread hat nicht geholfen:
http://www.delphipraxis.net/internal...t=idhttpserver

Schonmal danke für eure Hilfe

MfG
Christian
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
 


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 08:32 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