Pinger přes Synapse v Delphi poradite lamě

Programovacie jazyky, rady, poradňa...
Leo
Novice
Novice
Príspevky: 7
Registrovaný: 29 dec 2011, 7:04

Pinger přes Synapse v Delphi poradite lamě

Príspevok od používateľa Leo »

Zdravím.
Jsem uplny začatečnik a smažim se udělat pinger pomoci knihovny Synapse.
Je to muj první program ve kterem budu použivat knihovnu pas a nevim jak ji do delphi přidat.
Poradite.
Že musim použit knihovnu PingSend už vim.
Jak na to jsem už take našel
A := PingHost('www.google.cz');

Jak však nastavit timeout a packetsize ???
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Pinger přes Synapse v Delphi poradite lamě

Príspevok od používateľa audiotrack »

na timeout môžeš použiť klasický timer z delphi. V synapse som konkrétne ping nepoužíval, tak neviem či povoluje cez nejaký setter nastaviť aj timeout. Treba pozreť v dokumentácii. Rovanko tak packetsize. Mal by to dokázať
dykeer
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 102
Registrovaný: 02 jan 2011, 21:21
Kontaktovať používateľa:

Re: Pinger přes Synapse v Delphi poradite lamě

Príspevok od používateľa dykeer »

Pozri si zdrojak triedy TPINGSend, tam máš zadefinovany default packetsize (32) aj timeout (5000). Pre jednoduchosť ho zedituj a daj si tam vlastné hodnoty
Leo
Novice
Novice
Príspevky: 7
Registrovaný: 29 dec 2011, 7:04

Re: Pinger přes Synapse v Delphi poradite lamě

Príspevok od používateľa Leo »

A jak ty knihovny přidat do delphi.
Na netu jsem našel že stači překopirovat knihovnu pingsend.pas do adresaře, kde mam uložen muj program a zadat do uses PingSend.
Nějak to nefunguje. :nono:

V knihovně PingSend je
uses
SysUtils,
synsock, blcksock, synautil, synafpc, synaip
Takže knihovna PingSend chce dalšich 6 knihoven.
dykeer
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 102
Registrovaný: 02 jan 2011, 21:21
Kontaktovať používateľa:

Re: Pinger přes Synapse v Delphi poradite lamě

Príspevok od používateľa dykeer »

Leo napísal:A jak ty knihovny přidat do delphi.
Na netu jsem našel že stači překopirovat knihovnu pingsend.pas do adresaře, kde mam uložen muj program a zadat do uses PingSend.
Nějak to nefunguje. :nono:

V knihovně PingSend je


Takže knihovna PingSend chce dalšich 6 knihoven.
Nakopíruj pingsend.pas do adresára projektu, pridaj pingsend.pas do projektu a do uses tvojho zdrojíku pridaj pingsend

Keď pingsend nevidí ostatné uses, nastav v options projektu cestu ku knizniciam alebo ich priamo nakopiruj do adresara projektu
Leo
Novice
Novice
Príspevky: 7
Registrovaný: 29 dec 2011, 7:04

Re: Pinger přes Synapse v Delphi poradite lamě

Príspevok od používateľa Leo »

Tak to funguje ale pokud pingam na něco co laguje tak začne i program lagovat :( .

Ve staženem baliku v demo je PingThread.pas

Kód: Vybrať všetko

unit PingThread;

interface

uses Classes, PingSend, IPUtils;

type
     PPingResult = ^TPingResult;
     TPingResult = Record
                     IPAdress:String;
                     Exists:Boolean;
                   end;


type
  TPingThread = class(TThread)
  private
    { Private declarations }
  protected
    procedure Execute; override;
  public
    PingResult:TPingResult;
    Ready:Boolean;
    constructor Create(Ping:TPingResult);
  end;

implementation

{ TPingThread }

constructor TPingThread.Create(Ping:TPingResult);
begin
  PingResult.IPAdress := Ping.IPAdress;
  inherited Create(False);
end;

procedure TPingThread.Execute;
var Ping:TPingSend;
begin
  Ready := false;
  Ping  := TPingSend.Create;
  Ping.Timeout := 2000;
  PingResult.Exists := Ping.Ping(PingResult.IPAdress);
  Ping.Free;
  Ready := true;
end;
end.
Poradí někdo jak toto použit.
S vláknem jsem už jednou dělal ale s tímto si nevím rady.
Jak si třeba přes to vlakno pingnu na 192.168.1.1

//autoeditácia príspevku (18 Jan 2012, 2:40)
Hm.Tak moc dik :?
Napísať odpoveď