使用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在同一個電腦測驗。還是這樣的代碼,卻很成功。在網上查找了很久,不知道原因何在?
請指點。
uj5u.com熱心網友回復:
沒用過10,擼過圍觀
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/133598.html
標籤:網絡通信/分布式開發
下一篇:sqlserver中超時問題
