Einzelnen Beitrag anzeigen

Karg

Registriert seit: 5. Jun 2007
36 Beiträge
 
#1

Dateien senden und empfangen

  Alt 15. Nov 2007, 19:57
hi @ all,
ich will über server und clientsocket eine datei senden bzw. empangen.
Jedoch funktioniert es nicht und ich komm nicht auf den fehler.
Hier mal der code:

Server sendet stream:
Delphi-Quellcode:
 //--------- DOWNLOAD FILE --------------
 if pos('<DOWNLOAD>',buf) <> 0 then
  begin
   DFile:=Tfilestream.Create(Fchosen,fmopenread); //Fchosen ist der pfad zur datei
   Dfile.Position:=0;
   DFile_size:= DFile.size; // var DFILE_size: int64;
   file_client.Socket.SendBuf(DFile_size,sizeof(int64));
   file_client.Socket.SendStream(Dfile);
   Dfile.Free;
  end;


Client empfängt:
Delphi-Quellcode:
DFile:=Tfilestream.Create('c:\test.exe',fmcreate or fmopenwrite);
  //---- Streamgröße ermitteln-----
   if socket.ReceiveLength <= sizeof(int64) then
    begin
     socket.ReceiveBuf(DFILE_SIZE,sizeof(DFILE_size)); // var DFILE_SIZE:int64;
    end;

   //---- Stream empfangen-----
   if Socket.ReceiveLength>sizeof(int64) then
     begin
       streamsize:=socket.ReceiveLength;
       getmem(buffer,streamsize);
        try
         socket.ReceiveBuf(buffer^,streamsize);
         Dfile.WriteBuffer(buffer^,streamsize);
        finally
         freemem(buffer); end;
         
      if Dfile.size>=Dfile_size then Dfile.Free;
      end;
  Mit Zitat antworten Zitat