谢谢先!在线等待!

解决方案 »

  1.   

    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;
      

  2.   

    你好我试了你的方法,可是到了 
             if not Assigned(CltSck) then
    错误 ->    AUDP:=TNMUDP.Create(self);
    这里就出错了
    [Error] Unit_DataRecv.pas(39): Incompatible types: 'TComponent' and 'DataRecv'
    DataRecv是我的线程的名字,请指教,谢谢先!