全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2112
推到 Plurk!
推到 Facebook!

【Delphi】【問題】使用IdTime 時, 若網路未連線, 會出現"Socket Error #

答題得分者是:hagar
TourNet
一般會員


發表:6
回覆:9
積分:3
註冊:2003-05-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-22 20:29:17 IP:61.219.xxx.xxx 未訂閱
請教各位大大, 小弟剛學Indy的東東,以下是使用idTime 取得標準時間並且更改本機電腦的時間, 但是若本機電腦未連線上網或是無法連接Host 時, 會出現"Socket Error #10061"的錯誤, 要如何判斷連接host 正常時才去取得標準時間, 以避免無法連接時所跳出的錯誤訊息... 謝謝各位大大!!!! Try idTime := TidTime.Create (NIL); Try idTime.Host := 'time.nist.gov' ; DateTimeToSystemTime(idTime.DateTime - OffsetFromUTC , asystemtime); SetSystemTime(asystemtime); Except end ; Finally Try idTime.Disconnect ; idTime.Free; Except end ; end ;
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-23 08:19:37 IP:202.39.xxx.xxx 未訂閱
begin
  idTime := TidTime.Create (NIL);
  try
    Try
      idTime.Host := 'time.nist.gov' ;
      idTime.Connect;
      if idTime.Connected then begin
        DateTimeToSystemTime(idTime.DateTime - OffsetFromUTC , asystemtime);
        SetSystemTime(asystemtime);
      end;
    Except
    end ;
  Finally
    idTime.Disconnect ;
    idTime.Free;
  end ;
end;
另外, 雖然使用了 try .. except, 但在 IDE 下若連不上仍會顯示預訂的錯誤訊息是正常的 可在 Tools -> Debug Options -> Language Exceptions 頁中 的 Stop on Delphi Exceptions 的核取方塊取消即可. --- Everything I say is a lie. @>---
TourNet
一般會員


發表:6
回覆:9
積分:3
註冊:2003-05-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-23 20:55:17 IP:61.219.xxx.xxx 未訂閱
引言:
begin
  idTime := TidTime.Create (NIL);
  try
    Try
      idTime.Host := 'time.nist.gov' ;
      idTime.Connect;
      if idTime.Connected then begin
        DateTimeToSystemTime(idTime.DateTime - OffsetFromUTC , asystemtime);
        SetSystemTime(asystemtime);
      end;
    Except
    end ;
  Finally
    idTime.Disconnect ;
    idTime.Free;
  end ;
end;
另外, 雖然使用了 try .. except, 但在 IDE 下若連不上仍會顯示預訂的錯誤訊息是正常的 可在 Tools -> Debug Options -> Language Exceptions 頁中 的 Stop on Delphi Exceptions 的核取方塊取消即可. --- Everything I say is a lie. @>---
謝謝hagar 我試過上面你加的方法, 可是執行到 DateTimeToSystemTime(idTime.DateTime - OffsetFromUTC , asystemtime); 這一行時, 會出現 already connected 的錯誤 並且這一行也沒有執行, 所以SetSystemTime 也沒用了
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-24 08:01:45 IP:202.39.xxx.xxx 未訂閱
sorry! 小弟試了一下, 您原本寫的就可以了! 原來問題, 應該注意的: 雖然使用了 try .. except, 但在 IDE 下若連不上仍會顯示預訂的錯誤訊息是正常的 可在 Tools -> Debug Options -> Language Exceptions 頁中 的 Stop on Delphi Exceptions 的核取方塊取消即可. --- Everything I say is a lie. @>---
系統時間:2024-04-24 6:19:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!