Einzelnen Beitrag anzeigen

suncezz

Registriert seit: 2. Dez 2008
8 Beiträge
 
#1

Datenübertragung Sendbuf....

  Alt 2. Dez 2008, 23:50
Hi, habe folgendes problem.. ich möchte eine datei von meinem client zum server übertragen..
Die ganze sache functioniert auch wunderbar, jedoch ist diese datei, welche beim server ankommt unbrauchbar... also ich habe mir eine mp3 geschickt, die danach allerdings nicht mehr zu lesen war vom player.. ich schicke mal den code dazu.. ich hoffe mir kann jemand helfen was ich falsch mache..
danek suncezz !!

Clienet : ///////////////////////

Code:
procedure TForm1.Button4Click(Sender: TObject);
var datei1: tfilestream;
    buff : array[1..1024] of byte;
    groese : integer;
begin
groese := 0;
if opendialog1.Execute then
begin
datei1 := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite);
repeat
datei1.Read(buff,sizeof(buff));
clientsocket1.Socket.SendBuf(buff,sizeof(buff));
groese := groese + sizeof(buff);
until groese > datei1.Size;
datei1.Free;
end;
end;
Server //////////////////////

Code:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);

var datei : tfilestream;
    fname : string;
    buff : array[1..1024] of byte;
    groese : integer;

begin
fname := 'C:\Dokumente und Einstellungen\Administrator\Desktop\ManuelsTestOrdner\sendet.mp3';

datei := TFileStream.Create(fname, fmCreate or fmShareExclusive);
groese := datei.Size;
repeat
serversocket1.Socket.Connections[0].ReceiveBuf(buff,sizeof(buff));
datei.Write(buff,sizeof(buff));
until datei.Size > 500000;  // wird noch behoben, bin mir aber sicher das es daran nicht liegt..
datei.Free;

end;
Ich habe die VErmutung das er mit den ersten bytes irgendwas falsch macht .. vlt kann mir ja jemand helfen.. danker schonmal im voraus,
mfg suncezz
  Mit Zitat antworten Zitat