var
Form1: TForm1;
myreadfile,mywritefile:tfilestream;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
serversocket1.Active:=true;
clientsocket1.Active:=true;
myreadfile:=tfilestream.Create('d:\aaa.exe',fmOpenRead);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
mywritefile:=tfilestream.Create('d:\basd.abc',fmcreate);
clientsocket1.Socket.Sendtext('givemefile');
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var buffer:array[1..1000] of byte; len:integer;
begin
len:=socket.ReceiveLength;
if len>500 then
begin
mywritefile.Free;
showmessage('file send over!');
exit;
end;
socket.ReceiveBuf(buffer,len);
mywritefile.Write(buffer,len);
socket.SendText('continue');
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var buffer:array[1..1000] of byte; len:integer;
begin
if socket.ReceiveText<>'givemefile' then
begin
len:=myreadfile.Read(buffer,500);
if len=0 then
begin
socket.SendBuf(buffer,501);
end;
socket.SendBuf(buffer,len);
end
else begin
len:=myreadfile.Read(buffer,500);
socket.SendBuf(buffer,len);
end;
end;
var
Form1: TForm1;
myreadfile,mywritefile:tfilestream;
serversend,cliendaccept:boolean;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
serversocket1.Active:=true;
clientsocket1.Active:=true;
myreadfile:=tfilestream.Create('d:\aaa.txt',fmOpenRead);
serversend:=false;
cliendaccept:=false;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
clientsocket1.Socket.Sendtext('givemefile');
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var i:integer;
begin
mywritefile:=tfilestream.Create('d:\basd.txt',fmcreate);
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
if not serversend then
begin
if (socket.ReceiveLength<>10) or (socket.ReceiveText<>'givemefile') then
exit
else begin
serversend:=true;
socket.SendStream(myreadfile);
serversend:=false;
end;
end;
end;