Synapse - Subnet-Scanner, Threads

Alle Fragen zur Netzwerkkommunikation
Benutzeravatar
theo
Beiträge: 10499
Registriert: Mo 11. Sep 2006, 19:01

Re: Synapse - Subnet-Scanner, Threads

Beitrag von theo »

_X_ hat geschrieben:edit:// Bei sleep(100) bringt er nur die, die da sind. Es funktioniert, ist aber zu langsam.


Scheint mir unlogisch.
Wo gibst du das jetzt aus?

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: Synapse - Subnet-Scanner, Threads

Beitrag von _X_ »

Code: Alles auswählen

procedure TMyApplication.threadterminated(Sender: TObject);
begin
 dec(z);
 if nThread(Sender).res <> '' then begin
   hosts.Add(nThread(Sender).res);
 end;
end;

hosts: stirngliste
Und nach der while-Schleife die Stringliste mit writeln.

mfg _X_

Benutzeravatar
theo
Beiträge: 10499
Registriert: Mo 11. Sep 2006, 19:01

Re: Synapse - Subnet-Scanner, Threads

Beitrag von theo »

Joh, müsste eig. klappen.
Funzt das Ganze denn ohne Threads richtig?

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Synapse - Subnet-Scanner, Threads

Beitrag von mschnell »

_X_ hat geschrieben:sleep blockiert scheinbar auch die Threads.

Bei sleep() wartet nur der Thread, in dem sleep() aufgerufen wird. Alle anderen laufen weiter.

Sleep() im Mainthread blockiert die GUI, und damit auch Threads, die "Synchronize" machen, weil die im Synchronize-Aufruf auf die GUI warten müssen.

-Michael

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: Synapse - Subnet-Scanner, Threads

Beitrag von _X_ »

theo hat geschrieben:Funzt das Ganze denn ohne Threads richtig?
Wie meinst du das?
mschnell hat geschrieben:Sleep() im Mainthread blockiert die GUI, und damit auch Threads, die "Synchronize" machen, weil die im Synchronize-Aufruf auf die GUI warten müssen.
Ist klar. Ich hab in den Threads kein Synchronize.

Der Scanner findet manchmal IPs die nicht online sind. Problem ist ja bekannt, aber woran kann das liegen?

mfg _X_

Lord Horazont
Beiträge: 13
Registriert: Mi 4. Feb 2009, 11:27
OS, Lazarus, FPC: Linux (L: 0.9.29; FPC: 2.2.4)
CPU-Target: 64-bit

Re: Synapse - Subnet-Scanner, Threads

Beitrag von Lord Horazont »

Verstehe ich richtig, dass du alle aktiven IPs in einem Subnetz haben willst? Dann würde ich mal das Konzept ändern und vielleicht einen Broadcast-Ping machen, anstatt so viele einzelne Pings ins nichst zu schicken. Im Zweifelsfall ist ein Broadcast auch für das Netzwerk schonender, allerdings kanns sein, dass der Router dir das verbietet und das Package verwirft, sollte aber eher nicht vorkommen.

Gruß Lord Horazont

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: Synapse - Subnet-Scanner, Threads

Beitrag von _X_ »

Lord Horazont hat geschrieben:Verstehe ich richtig, dass du alle aktiven IPs in einem Subnetz haben willst?
Ja

mfg _X_

edit:// übrigens: was hat es für einen Sinn, einen Broadcast-Ping zu machen, wenn das im I-Net sowiso nicht geht? Die meisten Provider blocken das.

Antworten