type
TYourThread=class(TThread)
AUDP:TUDPSocket;//或 TNMUDP
procedure Execute;override;
procedure AUDPReceive(Sender: TObject; buf: pchar; var datalen: integer);
...
end;
implementation
procedure TYourThread.Execute;
begin
if not Assigned(AUDP) then
AUDP:=TUDPSocket.Create(self);
with AUDP do
begin
OnReceive:=AUDPReceive;
LocalHost:=..
LocalPort:=...
RemoteHost:=..
RemotePort:=...
Open;
end;
while not Terminated do
;do nothing
AUDP.Free;
end;
procedure TYourThread.AUDPReceive(Sender: TObject; buf: pchar; var datalen: integer);
begin
// your receive code here
end;
你好我试了你的方法,可是到了
if not Assigned(CltSck) then
错误 -> AUDP:=TNMUDP.Create(self);
这里就出错了
[Error] Unit_DataRecv.pas(39): Incompatible types: 'TComponent' and 'DataRecv'
DataRecv是我的线程的名字,请指教,谢谢先!