AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Dateien versenden mit Indy (Win 98 <-> 2000/NT/XP)
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien versenden mit Indy (Win 98 <-> 2000/NT/XP)

Ein Thema von alleinherrscher · begonnen am 21. Nov 2004 · letzter Beitrag vom 22. Nov 2004
Antwort Antwort
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#1

Dateien versenden mit Indy (Win 98 <-> 2000/NT/XP)

  Alt 21. Nov 2004, 11:53
Hi@all

Ich benutzte den Standard - Indy - Code für das senden von Dateien von Client an Server, allerdings habe ich folgendes Problem: Auf dem einen Rechner ist Windows 2000, auf dem anderen 98. Auf einem dritten ist NT4.
Wenn ich dateien von 2000 nach 98 über mein Programm schicke, läuft alles wie vorgesehen, wenn ich allerdings von 98 auf 2000 oder NT Daten (also filestream) schicke, hängt sich der 98 - Client bei Dateien die größer als 0,5mb sind, auf...jemand ne ahnung warum? Auf beiden Rechner kommt exakt das gleiche Programm zur Anwendung!

Zwischen 2000 und NT ist das Daten schicken absolut kein Problem.

Hier die entsprechenden Routinen:


Der Client-Code:

Delphi-Quellcode:
Idtcpclient1.writeln('~fsm'+opendialog1.filename); <--Hier wird dem Server der Dateiname übergeben

memo1.lines.add('Trying to send File '+filename1 + ' to the remote computer');

  with IdTCPClient1 do
  begin

    fs := TFileStream.Create(filename1, fmOpenRead); //Datei in FileStream einlesen
     try
      OpenWriteBuffer; //stellt sicher, dass alle Daten versendet werden
      try
       WriteStream(fs, true, true); <--- Hier bleibt Windows 98 hängen!!!
        CloseWriteBuffer;
      except
        CancelWriteBuffer;
        raise;
      end;
    finally
      fs.Free;
      Disconnect;
    end;
      memo1.lines.add('Transfer done!');
  end;


 end;
Entsprechend der ServerCode (Client und Server sind in einem Programm untergebracht):

Delphi-Quellcode:
text:=AThread.Connection.ReadLn();

typ:=copy(text,0,4);

if typ='~fsmthen begin
dateiname:=copy(text,pos('~fsm',text)+4,length(text)-4);
dateiname:=extractfilename(dateiname);
filename1:=dateiname;
endung:=copy(dateiname,pos('.',dateiname),length(dateiname)-pos('.',dateiname)+1);
savedialog1.FileName:=filename1;
savedialog1.Filter:=(endung+'|'+endung);


//FILES EMPFANGEN
 with AThread.Connection do
    try
     fs := TFileStream.Create('C:\filestream.tmp', fmCreate or fmShareExclusive);
            SizeOfIncomingStream := ReadInteger; //Größe des Streams empfangen
      ReadStream(fs, SizeOfIncomingStream); //und übergeben
    finally
      fs.Free;
      streamsend:=False;
      Disconnect;
      end;

    AThread.Synchronize(speichern_unter);



exit;
end;
Wäre cool wenn jemand ne Idee hätte, hab allerseits die Indy Version 9.00.17.src und hoffe, ich muss keine andere installieren, weil das ja immer nen Aufstand ist...

Liebe wochenendlichen Grüße,

Euer Alleinherrscher
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Dateien versenden mit Indy (Win 98 <-> 2000/NT/XP)

  Alt 21. Nov 2004, 15:47
Kann mir denn gar niemand helfen
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#3

Re: Dateien versenden mit Indy (Win 98 <-> 2000/NT/XP)

  Alt 21. Nov 2004, 16:21
Zitat von alleinherrscher:
Kann mir denn gar niemand helfen
Die Frage stand gerade mal 4 Stunden hier im Forum. Du kannst nicht erwarten nach dieser Zeit bereits eine Antwort zu erhalten. Das Pushen von Beiträgen nach dieser kurzen Zeit ist hier nicht erwünscht. Also warte noch etwas, gut Ding will Weile haben.
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Dateien versenden mit Indy (Win 98 <-> 2000/NT/XP)

  Alt 22. Nov 2004, 16:03
Ok, sorry, tut mir ja leid

Think of

Aber dann will ich die frage mal etwas umformulieren: wie kann ich auf möglichst einfachem wege dafür sorgen, dass die datei beim senden über writestream in ca. 10kb großen packeten versendet wird. Habe mir hier ein Beispiel angeguckt, allerdings ist das ziemlich komplex und mit vielen anderen funktionen...ich blicke da nicht so ganz durch ...
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz