procedure TForm1.EButton2Click(Sender: TObject);
var
FStream: TFileStream;
begin
try
if OpenDialog1.Execute
then
begin
if FileExists(OpenDialog1.FileName)
then
begin
FStream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
TCPClient.Connect;
TCPClient.IOHandler.WriteLn(ExtractName(Opendialog1.FileName));
TCPClient.Disconnect;
TCPClient.Connect;
try
TCPClient.IOHandler.
Write(Fstream,0,true);
finally
FreeAndNil(FStream);
end;
if TCPClient.Connected
then
TCPClient.Disconnect;
end
else
MessageDlg('
file does not exist!', mtError, [mbOK], 0);
end;
except
on e:
Exception do
MessageDlg(e.
Message, mtError, [mbOK], 0);
end;
end;
// TCP Server
procedure TForm1.TCPServerExecute(AContext: TIdContext);
var
FSTream: TFileStream;
df:
String;
begin
try
if savefilepath = '
'
then
begin
savefilepath := DestinationEdit.Text+AContext.connection.IOHandler.ReadLn ;
Memo1.Lines.Add('
download file: "'+savefilepath+'
" from '+AContext.Binding.PeerIP);
end
else
begin
try
if FileExists(savefilepath)
then
begin
if MessageDlg('
overwrite existing file?', mtConfirmation, [mbYes, mbNo], 0) = mrYes
then
begin
df := savefilepath;
DeleteFile(
df);
FStream := TFileStream.Create(savefilepath, fmCreate);
AContext.connection.IOHandler.ReadStream(fstream);
end;
end
else
begin
if DirectoryExists(ExtractFilePath(savefilepath)) = false
then
CreateDir(ExtractFilePath(savefilepath));
FStream := TFileStream.Create(savefilepath, fmCreate);
AContext.connection.IOHandler.ReadStream(fstream);
end;
finally
FreeAndNil(FStream);
end;
AContext.connection.Disconnect;
end;
savefilepath := '
';
except
on e:
Exception do
MessageDlg(e.
Message, mtError, [mbOK], 0);
end;
end;