Registriert seit: 1. Mai 2007
181 Beiträge
Delphi 7 Enterprise
|
Re: WinSock & Dateien versenden
6. Okt 2007, 18:46
Du öffnest eine beliebige Datei untypisiert und liest immer z.B. 2048 Bytes
und sendest diese an den Server bis du ans Ende der Datei angelangt bist.
Delphi-Quellcode:
//Server:
[....]
type TDLFile: array[0..2048-1] of Byte;
[....]
var datei: file;
buffer: TDLFile;
iResult: Integer;
begin
AssignFile(datei, 'C:\bild.bmp');
ReSet(datei, 1);
while not eof(datei) do
begin
BlockRead(datei, buffer, 2048, iResult);
Socket.SendBuf(buffer, iResult);
end;
CloseFile(datei);
end;
[....]
//Client:
[...]
type TDLFile: array[0..2048-1] of Byte;
var dlCounter: Cardinal = 0;
[....]
procedure WriteToNewFile(bByteDat: TDLFile; iSize: Integer);
var
hDat: File;
begin
if FileExists('C:\new_bild.bmp') then
begin
AssignFile(hDat, 'C:\new_bild.bmp');
ReSet(hDat, 1);
Seek(hDat, soFromBeginning+dlCounter);
BlockWrite(hDat, bByteDat, iSize);
inc(dlCounter, iSize);
CloseFile(hDat);
end
else begin
AssignFile(hDat, 'C:\new_bild.bmp');
ReWrite(hDat, 1);
BlockWrite(hDat, bByteDat, iSize);
dlCounter := iSize;
CloseFile(hDat);
end;
end;
[....]
var
buffer: TDLFile;
iResult: Integer;
begin
Socket.RecieveBuf(buffer, Socket.RecieveLength);
WriteToNewFile(buffer, Socket.RecieveLength);
end;
[....]
Du musst den Code anpassen und eventuell Fehler ausbessern.
MfG: sk0r
|
|
Zitat
|