5,388
社区成员
发帖
与我相关
我的任务
分享
type
Tsendthread=class(TThread)
private
FFilename:string;
FIP:string;
protected
procedure Execute;override;
public
constructor createThread(IP:string;FileName:string);
end;
procedure TForm2.TransFileClick(Sender: TObject);
var
fileName:string;
pname:pchar;
begin
if OpenDialog.Execute then
begin
fileName:=OpenDialog.FileName;
TSendThread.createThread(TRIM(recvIP),ExtractFileName(fileName));
end;
end;
constructor Tsendthread.createThread(IP, FileName: string);
begin
Fip:=IP;
FFilename:=filename;
FreeonTerminate:=true;
inherited create(false);
end;
constructor Tsendthread.createThread(IP, FileName: string);
begin
Fip:=IP;
FFilename:=filename;
FreeonTerminate:=true;
inherited create(false);
end;
procedure Tsendthread.Execute;
var
socket:TIdTCPClient;
fs:TFileStream;
pname,hostname:PChar;
lsize:Int64;
begin
try
socket:=TIdTCPClient.Create(nil);
socket.Host:=Fip;
socket.Port:=9923;
socket.Connect();
if socket.Connected then
begin
fs:=TFileStream.Create(FFileName,fmOpenRead);
try
socket.WriteLn('TRANSFILE');
socket.WriteLn(FFileName);
socket.WriteLn(inttostr(fs.Size));
socket.WriteStream(fs,false,false,fs.Size);
lsize:=fs.size;
socket.WriteLn(myname);
finally
fs.Free;
end;
end;
finally
socket.DisconnectSocket;
socket.Free;
end;
end;
constructor createThread(IP:string;FileName:string);
type
TDealDataThread = class(TThread)
private
procedure Execute;override;
public
constructor Create(AMainHandle:HWND;CreateSuspended: Boolean);
end;
调用
FDealDataThread := TDealDataThread.Create(Self.Handle,False);