![]() |
Datei wird beim senden kleiner :(
hallo,
Code:
Wenn ich so eine Datei versende ist die gesendete Datei klainer als die Anfangsdatei. Heisst auf Deutsch: Da fehlt was! :wall:
procedure TMain_Form.FTPServerExecute(AThread: TIdPeerThread);
var DateiStream: TFileStream; begin try DateiStream := TFileStream.Create(SaveDialog1.FileName, fmCreate); AThread.Connection.ReadStream(DateiStream); finally DateiStream.Free; FTPClient.Disconnect; end; end; Kann mir bitte einer sagen was ich falsch mache? Wenn was fehlt bitte auch melden, ich hab noch mehr code. :mrgreen: |
Re: Datei wird beim senden kleiner :(
Mal geschaut, ob du deinen Client auf eine ASCII oder Binary Übertragung eingestellt hast?
In diesem Fall wäre eine Binary von Vorteil... :zwinker: Is mein erster Gedanke zu FTP Übertragungen ohne den Source anzuschaun... Also net pöse sein ^^ Bye |
Re: Datei wird beim senden kleiner :(
hallo,
komme gerade von deinem selbstgespräch :mrgreen: Socket to Indy naja ich werds weiterversuchen hab ja Zeit und thx :cyclops: mfg freak |
Re: Datei wird beim senden kleiner :(
Es hat keiner eine Lösung gehabt und da ich scheinbar eine gefunden hab, hab ich sie mal gepostet, falls mal wer anders sowas sucht ^^
Kannst du ja auch tun :zwinker: Dein Problem könntest du vielleicht auch ein wenig besser beschreiben, z.b. was für Komponenten du benutzt ec. Mir scheind du nimmst Indy-Komponenten und willst was mit FTP machen ^^ Richtig? bye |
Re: Datei wird beim senden kleiner :(
hallo,
öhm... ja :mrgreen: Also ich hab nur nen Indy TCPServer und den Clienten dazu. Mein Chatprogramm soll Daten hin und hersenden. Aber alles was passiert. Die Daten werden gelöscht(Größe = 0 Datei noch da) und die datei die ankommt ist auch 0 Byte groß ich hab schon mein halbes delphi verschickt :wall: :drunken: :wall: :gruebel: mfg freak |
Re: Datei wird beim senden kleiner :(
Jaja die pösen TIdTCP Komponenten...
Ich bin auch gerade am werkeln mit dennen... Wenn ich mein Datendurchsatz Problem gelöst hab, hab ich vielleicht mal zeit mir die stream Sache anzuschaun... Is die Datei vorm verschicken schon 0 Bytes Groß, oder erst später? Wurden deine Datein nicht erst nur verkleinert? Bye |
Re: Datei wird beim senden kleiner :(
huhu :hi:
ja also zu anfang war die original noch da (intakt) und diegesendete hatte nen verlkust von ca 10% und nun werden die originalgröße auf 0 gesetzt und die neue (gesendete) ist auch 0 :gruebel: *irgendwas falsch macht* :angel2: <-- Vielleicht doch wieder mit seinen Legosteinen spielt :( mfg freak PS: Ich geb nicht auf! ... und wenn es das letzte ist was ich tue. :twisted: |
Re: Datei wird beim senden kleiner :(
Die Datein die du senden willst, werden von ihrem Inhalt befreit?
Da passt dann aber irgendwas gewaltig nicht würd ich sagen :gruebel: Sber dann liegt das net an der TIdTCP-Komponente, den so schlecht uind verbugt sind sie ja nun net :zwinker: Bye |
Re: Datei wird beim senden kleiner :(
ich hab keine Ahnung, bin verzweifelt und gebe bald auf. :wall:
mfg freak |
Re: Datei wird beim senden kleiner :(
so habs weiter probiert:
Code:
Zur Erklärung:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdTCPServer, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; IdTCPClient1: TIdTCPClient; IdTCPServer1: TIdTCPServer; Panel1: TPanel; procedure Button1Click(Sender: TObject); procedure IdTCPServer1Execute(AThread: TIdPeerThread); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var Stream: TFileStream; begin if OpenDialog1.Execute then Stream := TFileStream.Create(OpenDialog1.FileName, fmCreate); IdTCPClient1.Host := '127.0.0.1'; IdTCPClient1.Port := 7000; IdTCPServer1.Active := True; IdTCPClient1.Connect; try IdTCPClient1.WriteStream(Stream, True, True, 0); finally Stream.Free; end; end; procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread); var EingangsStream: TFilestream; begin if SaveDialog1.Execute then EingangsStream := TFileStream.Create(SaveDialog1.FileName, fmCreate); try Athread.Connection.ReadStream(EingangsStream); finally EingangsStream.Free; end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if IdTCPClient1.Connected then IdTCPClient1.Disconnect; if IdTCPServer1.Active then IdTCPServer1.Active := False; end; end. Ich möchte eine Datei in einen Stream laden und den dann übers Netzwerk verschicken, auslesen und die Datei so haben wie ich sie verschickt hab. Hier hab ich des versucht nur für meinen Rechner zu tun. Müsste vom Prinzip her des eubfachste sein. Ergebnis: 1. Zu versendernde Dateigröße = 0 2. Die Datei wird zwar gespeichert, ist aber auch 0 Byte´groß 3. Im Server Execute kommen 2 Sachen an - ich weiss nicht welche - aber beide 0 Byte groß Ich sag nur eins: BItte, bitte helft mir. :chat: mfg freak |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 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