PageRenderTime 37ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/synapse/source/demo/scan/PingThread.pas

http://lingr-delphi.googlecode.com/
Pascal | 48 lines | 36 code | 10 blank | 2 comment | 0 complexity | a6e8ec05bb2a18ab3e4fc9b4c7525330 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. unit PingThread;
  2. interface
  3. uses Classes, PingSend, IPUtils;
  4. type
  5. PPingResult = ^TPingResult;
  6. TPingResult = Record
  7. IPAdress:String;
  8. Exists:Boolean;
  9. end;
  10. type
  11. TPingThread = class(TThread)
  12. private
  13. { Private declarations }
  14. protected
  15. procedure Execute; override;
  16. public
  17. PingResult:TPingResult;
  18. Ready:Boolean;
  19. constructor Create(Ping:TPingResult);
  20. end;
  21. implementation
  22. { TPingThread }
  23. constructor TPingThread.Create(Ping:TPingResult);
  24. begin
  25. PingResult.IPAdress := Ping.IPAdress;
  26. inherited Create(False);
  27. end;
  28. procedure TPingThread.Execute;
  29. var Ping:TPingSend;
  30. begin
  31. Ready := false;
  32. Ping := TPingSend.Create;
  33. Ping.Timeout := 2000;
  34. PingResult.Exists := Ping.Ping(PingResult.IPAdress);
  35. Ping.Free;
  36. Ready := true;
  37. end;
  38. end.