![]() |
Indy TCP und Write-/ReadStream-Methode
Hallöchen. Nachdem Meflin in
![]() Da ich als letztes in den Thread von Meflin gepostet habe und dieser nicht als unbeantwortet gekennzeichnet ist, hab ich jetzt einfach einen neuen Thread aufgemacht, um auf das bis dato ungelöste Problem aufmerksam zu machen. (Ich war der Ansicht, dass beim alten Thread leicht der Glaube entstehen könnte, dass er beantwortet ist. Und weil ich Meflins Problem lösen will, was nun auch zu meinem geworden ist, hab ich jetzt die Initiative ergriffen. Wenn die Moderatoren anderer Meinung sind, bitte :mrgeen:)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var fs: TFileStream; begin if not OpenDialog1.Execute then exit; with IdTCPClient1 do begin fs := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite); Connect; try WriteStream(fs); finally Disconnect; fs.Free; end; end; end; procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread); var fs: TFileStream; begin if not SaveDialog1.Execute then exit; fs := TFileStream.Create(SaveDialog1.Filename, fmCreate or fmShareExclusive); with AThread.Connection do try ReadStream(fs); finally Disconnect; fs.Free; end; end; |
Re: Indy TCP und Write-/ReadStream-Methode
Hi,
versuch mal in der procedure Button1Click folgendes einzubauen :
Code:
Gruß Data
procedure TForm1.Button1Click(Sender: TObject);
var fs: TFileStream; begin if not OpenDialog1.Execute then exit; with IdTCPClient1 do begin fs := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite); try Connect; if Connected then begin try // Write Buffer öffnen OpenWriteBuffer; // Stream in Buffer schreiben WriteStream(fs); CloseWriteBuffer; // Buffer schliessen, Buffer wird dann automatisch abgeschickt except // fehlermeldung end; end; finally Disconnect; fs.Free; end; end; end; |
Re: Indy TCP und Write-/ReadStream-Methode
Danke, aber hat leider nix geholfen. Es tritt immer noch der selbe Fehler auf :|.
(Nach Indy-Hilfe modifiziert):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var fs: TFileStream; begin if not OpenDialog1.Execute then exit; with IdTCPClient1 do begin fs := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite); Connect; try OpenWriteBuffer; try WriteStream(fs); CloseWriteBuffer; except CancelWriteBuffer; raise; end; finally Disconnect; fs.Free; end; end; end; |
Re: Indy TCP und Write-/ReadStream-Methode
|
Re: Indy TCP und Write-/ReadStream-Methode
Moin OrallY,
probier's mal mit fmOpenReadWrite beim FileStream. Ich hab' an der gleichen Stelle einen MemoryStream, und damit geht's. |
Re: Indy TCP und Write-/ReadStream-Methode
Ich hatte das auch schon mit einem MemoryThread probiert, aber das hat bei mir nicht geklappt :|.
Eine Lösung des Problems gibts, wenn du dem Link folgst. So funktionierts, auch wenn ich den Grund nicht kenne ;): |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 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