AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Datei gesplittet über TClientSocket/TServerSocket versenden
Thema durchsuchen
Ansicht
Themen-Optionen

Datei gesplittet über TClientSocket/TServerSocket versenden

Ein Thema von hugo1990 · begonnen am 4. Mär 2008
Antwort Antwort
hugo1990

Registriert seit: 27. Dez 2006
166 Beiträge
 
Turbo Delphi für Win32
 
#1

Datei gesplittet über TClientSocket/TServerSocket versenden

  Alt 4. Mär 2008, 14:47
Zur Zeit versende ich die Dateien mittels SendStream, nur kann man da die Übertragung nicht abbrechen. Also dachte ich mir, das ich den Stream in kleine Teile aufsplitte und somit die Übertragung einfach unterbrechen kann. Dazu habe ich folgende Code geschrieben:
Delphi-Quellcode:
procedure TFileClient.SendData(Sender: TObject; Socket: TCustomWinSocket);
var Header: AnsiString;
    Size: Int64;
    Stream: AnsiString;
const
  MaxSize = 1024;
begin
  if Assigned(FFile) then
    begin
    Header := #5+'header'+#6+ExtractFileName(FFile.Filename)+#6+IntToStr(FFile.Stream.Size)+#6+'/header'+#7;
    Socket.SendBuf(Header[1], Length(Header));
    if FFile.Stream.Size < MaxSize then Size := FFile.Stream.Size
      else Size := MaxSize;
    SetLength(Stream, Size);
    while FFile.Stream.Read(Stream[1], Size) <> 0 do
      begin
      //sleep(50);
      //Application.ProcessMessages;
      Socket.SendBuf(Stream[1], Size);
      if FFile.Stream.Size-FFile.Stream.Position < MaxSize then Size := FFile.Stream.Size-FFile.Stream.Position
        else Size := MaxSize;
      SetLength(Stream, Size);
      end;
    end;
end;
Nur kommt da irgendwie garnichts vom Stream an, erst wenn ich das Sleep und das Application.ProcessMessages einfüge sendet er die Daten, aber die Geschwindigkeit der Übertragung leidet darunter und wenn ich die zeit bei Sleep kleiner wähle, bricht er die Übertragung sozusagen mittendrin ab und es wird nichts mehr versendet. Weiß jemand woran das liegt oder gibt es eine bessere Möglichkeit den Stream gesplittet zu versenden, so das man die Übertragung zwischendurch abbrechen kann.
  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 17:21 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