2013-01-02

自己來寫 test Ping 吧!


主要是使用 Indy 的元件 TIdIcmpClient 來做到 Ping 指令。在 Event 事件中,要接收成功訊息在 IdIcmpClient.OnReply程式法範例如下:
procedure TfrmMain.IdIcmpClientReply(ASender: TComponent;
  const AReplyStatus: TReplyStatus);
begin
  MemMessage.Lines.Append(
    DatetimeToStr(FDT) +
    ', From:' + AReplyStatus.FromIpAddress +
    ', Bytes:' + IntToStr(AReplyStatus.BytesReceived) +
    ', Time:' + IntToStr(AReplyStatus.MsRoundTripTime) +
    ', TTL:' + IntToStr(AReplyStatus.TimeToLive) +
    ', Msg:' + AReplyStatus.Msg );
end;

接收錯誤的地方只能用在執行 Ping 的時候使用 Try 包圍他,範例如下:
  FDT := Now;
  try
    IdIcmpClient.Ping();
  except
    on E:Exception do
    begin
      MemMessage.Lines.Append(
        DatetimeToStr(FDT) + ':' + 
        StringReplace(E.Message, #13#10, ' /d/a ', [rfReplaceAll]));
     FFail := FFail + 1;
    end;
  end;

我還是想要放上 Source Code 但不知道要放在哪邊、哈哈哈哈!
目前放在 drive.google.com ,如果友好建議也行!
祝大家愉快!
[TEST]

沒有留言: