Delphide aşağıda kodu yazdım.Amacım bir dosya transfer programı yazabilmek ama programı çalıştıramıyorum lütfen yardım edin!
Kod: Tümünü seç
unit dosya_stream;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, IdTCPServer,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient;
type
TForm1 = class(TForm)
client: TIdTCPClient;
server: TIdTCPServer;
OpenDialog1: TOpenDialog;
adres: TLabeledEdit;
dosya: TLabeledEdit;
ProgressBar1: TProgressBar;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure adresChange(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure serverExecute(AThread: TIdPeerThread);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
dosya_adi: String;
implementation
{$R *.dfm}
procedure TForm1.adresChange(Sender: TObject);
begin
client.Host:=adres.Text;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if opendialog1.Execute then
begin
dosya_adi:=opendialog1.FileName;
end;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var
gonderilen_dosya:TFilestream;
dosya_boyutu,tamamlanan,kalan,buffer:integer;
begin
gonderilen_dosya:=TFileStream.Create(dosya_adi,fmopenread);
dosya_boyutu:=gonderilen_dosya.Size;
tamamlanan:=0;
kalan:=gonderilen_dosya.Size;
client.Connect();
while kalan > 0 do
begin
gonderilen_dosya.Seek(1024,tamamlanan);
gonderilen_dosya.ReadBuffer(buffer,1024);
client.OpenWriteBuffer();
if client.Connected then
client.WriteBuffer(buffer,1024);
client.CloseWriteBuffer;
tamamlanan:=tamamlanan+1024;
kalan:=kalan-tamamlanan;
end;
end;
procedure TForm1.serverExecute(AThread: TIdPeerThread);
var
alinan_dosya:TFilestream;
buffer:integer;
begin
alinan_dosya:=TFileStream.Create('c:\sss.pas',fmopenwrite);
AThread.Connection.ReadBuffer(buffer,1024);
end;
end.