使用TIdTimeUDP和TIdTimeUDPServer同步计算机时间。发现二者不能通讯。TIdTimeUDP使用SyncTime方法一直False,而直接读取时间IdTimeUDP.datetime一直是1889年。
版本: Delphi2010 +  Indy10.5.5
procedure Tserver.FormCreate(Sender: TObject);
begin
     IdTimeUDPServer1.DefaultPort := 12345;
     try
     IdTimeUDPServer1.Active := True;
     except
       ShowMessage('not');
     end;     Memo1.Clear;
end;
客户端:
procedure TClientForm.Button1Click(Sender: TObject);
begin
    if IdTimeUDP1.Active then
        IdTimeUDP1.Active := False;    IdTimeUDP1.Host := Edit1.Text;
    IdTimeUDP1.Port := 12345;
   // IdTimeUDP1.BoundIP := '127.0.0.1';
    //IdTimeUDP1.BoundPort := 12344;
    IdTimeUDP1.Active := True;
    IdTimeUDP1.OpenProxy;    if IdTimeUDP1.SyncTime then //不使用这个,返回1899年
        Edit2.Text := DateTimeToStr(IdTimeUDP1.DateTime)
    else
      Edit2.Text := 'error';
end;procedure TClientForm.FormShow(Sender: TObject);
begin
     Edit1.Text := '127.0.0.1';
     Edit2.Text := '';
     Memo1.Clear;
end;
这样简单的代码,在同一台电脑或者两台电脑测试都不成功。
如果采用TIdTime和TIDTimeServer,则很正常。
不知道问题何在。于是又使用D7+Indy9在同一个电脑测试。还是这样的代码,却很成功。在网上查找了很久,不知道原因何在?
请指点。通信Delphi2010