AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Socket.ReceiveBuf umwandeln
Thema durchsuchen
Ansicht
Themen-Optionen

Socket.ReceiveBuf umwandeln

Ein Thema von Dr0mFr34K · begonnen am 23. Apr 2008 · letzter Beitrag vom 23. Apr 2008
Antwort Antwort
Dr0mFr34K

Registriert seit: 30. Jan 2007
5 Beiträge
 
Delphi 7 Enterprise
 
#1

Socket.ReceiveBuf umwandeln

  Alt 23. Apr 2008, 22:47
Hey Leute!

Hab da ein kleines Problem und zwar habe ich einen Server der Dateien empfangen soll. Es klappt alles, jedoch kommt der inhalt der Datei nicht an weil etwas an dieser Funktion falsch ist

Delphi-Quellcode:
procedure TFilesForm.SetFileData(const FileData: string);
var
   fs : TFileStream;
    iLen: Integer;
  Bfr: Pointer;

begin
   SaveDialog1.FileName := CurFile;
   if SaveDialog1.Execute then begin
    iLen := Length(FileData);
  GetMem(Bfr, iLen);
  try
    Socket.ReceiveBuf(Bfr^, iLen);
    fs.Write(Bfr^, iLen);
  finally
    FreeMem(Bfr);
  end;
      fs := TFileStream.Create(SaveDialog1.FileName, fmCreate or fmShareDenyWrite);
      fs.Free;
   end;
end;
FileData ist hier das übergebene aus Socket.RecieveText

ich würde nun gerne wissen wie man

Socket.ReceiveBuf(Bfr^, iLen); umwandeln kann, sodass nicht mit Socket.REceiveBuf gearbeitet wird sondern dass man die variable FileData benutzt.

Ich danke schonmal für die HIlfe

Mfg Dr0mFr34K
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Socket.ReceiveBuf umwandeln

  Alt 23. Apr 2008, 22:51
1. Du versuchst schon abgeholte Daten erneut abzurufen? Es ist kein Wunder, wenn der Socket keine Daten mehr, die wurden schliesslich schon zuvor von ReceiveText abgeholt.
2. Du beachtest überhaupt nicht den Rückgabewert von ReceiveBuf()
3. Du schreibst in einen Stream über die lokale Variable fs, die nicht initialisiert wurde und definitiv sogar Hinweise vom Compiler bringen.
4. Du legst eine Instanz von TFileStream an, wenn schon alles vorbei ist, um ihn dann wieder sofort freizugeben? Logik dahinter?

Glaub mir, der Compiler meint es nur gut mit dir, somit höre auch auf das, was er dir sagt.

Und zu deiner Frage: Schreibe den String einfach in den Filestream. Wo genau liegt dein Problem?
  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 20:22 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