想利用IdUDPServer来编写一个关于ntp服务器端的程序 
以下是我编写的一点内容,请教高手指点哪些错误? 
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream; 
  ABinding: TIdSocketHandle); 
var 
  ng:TNTPGram; 
  t1,t2,t3:tdatetime; 
  s,s1:string; 
begin 
   t1:=now; 
   FillChar(ng, SizeOf(ng), 0); 
   adata.ReadBuffer(ng,adata.Size); 
   ng.Head1:=$1c;  //ntp服务器
   ng.Head2:=$00;  //ntp层无定义
   setlength(s1,sizeof(ng)); 
   move(ng,s1[1],sizeof(ng)); 
    if s1<>'' then 
       begin 
          ng.Org1:=ng.Xmit1; //将客户端的初始时间内容放到ng.org中
          ng.Org2:=ng.Xmit2;           t3:=NTPToDateTime(flip(ng.org1),flip(ng.org2));           DateTimeToNTP(t1,ng.rcv1,ng.rcv2);//接收时间转换成1900-01-01 00:00:00到当时累积秒数 
          ng.rcv1 := Flip(ng.rcv1); 
          ng.rcv2 := Flip(ng.rcv2);           t2:=now; 
          datetimetontp(t2,ng.xmit1,ng.xmit2); 
          ng.xmit1 := Flip(ng.xmit1); 
          ng.xmit2 := Flip(ng.xmit2);           SetLength(s, SizeOf(ng)); 
          Move(ng, s[1], SizeOf(ng)); 
       with ABinding do 
          begin 
            SendTo(PeerIP, PeerPort, s[1], Length(s)); 
          end; 
       end 
       else 
         begin 
           listbox1.Items.Add('错误') ; 
           exit; 
         end; 
end; 
其中NTPToDateTime是将从1900-01-01 00:00:00累积的秒数转换为本机时间, datetimetontp是将本机时间转换为从1900-01-01 00:00:00到现在的累积秒数;flip()是网络字节和本地字节的转换,这些没问题.