Einzelnen Beitrag anzeigen

Synollus

Registriert seit: 29. Dez 2008
49 Beiträge
 
#2

Re: Stream von Client nach Server schicken

  Alt 29. Dez 2008, 16:11
Ich habe das jetzt einfach mal umgedreht, sodass der Client einen Stream an den Server schickt. Ich denke noch nach wie vor, dass das so nicht gehen wird, aber ich habe es einfach mal versucht.

Das sieht jetzt so aus.

Der Server:

Delphi-Quellcode:
procedure TfrmServer.ServerExecute(AThread: TIdPeerThread);
var
  Path: String;
  fStream: TFileStream;
  tBM: tBitmap;
begin
  Try
    If AThread.Connection.ReadLn = 'SSSthen
      begin
        ShowMessage('Wird ausgeführt ...');
        Path := ExtractFileDir(ParamStr(0)) + 'screen2.bmp';
        If FileExists(Path) then DeleteFile(Path);
        fStream := TFileStream.Create(Path, fmCreate);
        AThread.Connection.ReadStream(fStream, -1, True);
        FreeAndNil(fStream);
        Image1.Picture.LoadFromFile(Path);
      end;
  Except
  end;
end;
Der Client:

Delphi-Quellcode:
procedure TfrmClient.btnServerScreenShotClick(Sender: TObject);
var
  fStream: TFileStream;
  Path: String;
begin
  Try
    With Client do
      begin
        WriteLn('SSS');
        Path := ExtractFileDir(ParamStr(0)) + '\screen.bmp';
        fStream := TFileStream.Create(Path, fmOpenRead + fmShareDenyNone);
        OpenWriteBuffer;
        WriteStream(fStream);
        CloseWriteBuffer;
        FreeAndNil(fStream);
      end;
  Except
  end;
end;
Ich erhalte die ShowMessage 'Wird ausgeführt ...', sprich die Verbindung zwischen Client und Server steht. Die Datei vom Clienten (screen.bmp) existiert, doch er überträgt nichts. Es kommt kein Stream an, somit wird auch keine Datei screen2.bmp erstellt und Image1 bleibt leer.

Habe ich nur irgendetwas falsch gemacht, oder kann ich wirklich nicht Server und Client tauschen?
  Mit Zitat antworten Zitat