procedure TForm1.Button1Click(Sender: TObject);
var Stream: TFileStream;
begin
if not ClientSocket.Active then Exit;
Stream := TFileStream.Create('c:\command.com', fmOpenRead or fmShareDenyWrite);
ClientSocket1.Socket.Data := Stream;
ClientSocket1Write(self, ClientSocket1.Socket);
end;
procedure TForm1.ClientSocket1Write(Sender: TObject; Socket: TCustomWinSocket);
var buf: array[0..65535] of Char;
i: Integer;
begin
repeat
i := TFileStream(Socket.Data).Read(buf, 65536);
if Socket.SendBuf(buf, 65536) = -1 then begin
TFileStream(Socket.Data).Seek(-i, soFromCurrent);
Exit;
end;
until i <> 65536;
Socket.Close;
end;