AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi PortScanner -> Programm gibt keine Rückmeldung
Thema durchsuchen
Ansicht
Themen-Optionen

PortScanner -> Programm gibt keine Rückmeldung

Ein Thema von sharkx · begonnen am 22. Apr 2003 · letzter Beitrag vom 23. Apr 2003
Antwort Antwort
sharkx

Registriert seit: 24. Feb 2003
Ort: St. Ingbert
211 Beiträge
 
Delphi 7 Enterprise
 
#1

PortScanner -> Programm gibt keine Rückmeldung

  Alt 22. Apr 2003, 21:20
Huhu :>

Um zu sehen welche Ports bei mir offen sind, habe ich mir fix mal nen Portscanner geschrieben. Es geht auch soweit alles, aber in der zeit wo er scannt, kann ich an dem kleinen Tool absolut nichts mehr machen. Die Prozessor lastung derweil steigt auch nicht sehr in die höhe. An meiner Firewall jedoch sehe ich, das das programm noch am scannen ist.

Der Komplette Source:

Code:
procedure TForm1.Button1Click(Sender: TObject);
var StartPort : integer;
    EndPort : integer;
    i : integer;
begin
  Memo1.Lines.Add('Scanning ' + Edit1.text);
  StartPort := StrToInt(Edit2.Text);
  EndPort := StrToInt(Edit3.Text);
  if StartPort > Endport then
  begin
    MessageDlg('Ending Port have to be higher than starting port!', mtInformation, [mbOk], 0);
    exit
  end
    else
      for i := StartPort to EndPort do
  begin
  Label4.Caption := 'Scanning';
    try
      TcpClient1.Open;
      TcpClient1.RemotePort := IntToStr(i);
      TcpClient1.RemoteHost := Edit1.Text;
      if TcpClient1.Connect then
      Memo1.Lines.add(IntToStr(i));
      Label5.Caption := 'Current Port: ' + IntToStr(i);
      TcpClient1.Close;
         except
      on ESocketError do
        Application.ProcessMessages;
    end;
  end;
  Label4.Caption := 'Finish';
  Memo1.Lines.Add('-------------------------------------')
end;
Auserdem möchte ich ein "Stop" Button haben, jedoch weis ich nicht wie ich die laufende procedur anhalten kann?!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2
  Alt 22. Apr 2003, 21:45
Dein ProcessMessages steht an der falschen Stelle denke ich mal. Das wird ja nur aufgerufen, wenn es zu einem SocketFehler kommt. Setz das mal ein end weiter.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Marco Haffner
(Gast)

n/a Beiträge
 
#3
  Alt 22. Apr 2003, 21:49
Würd ich auch sagen das ProcessMessages an falscher Stelle steht.
Für einen vorzeitigen Abbruch würde ich es mit einen globale Boolean-Variable probieren, die wird mit False initialisiert und wenn der Stop-Schalter gedrückt wird, die Variable auf True setzen.
In der Schleife dann nur noch überprüfen ob gesetzt und ist dieses der Fall mit Break die Schleife abbrechen.
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#4
  Alt 22. Apr 2003, 22:29
Du solltest das ganze Gescanne in ein eigenes TThread-Objekt verschieben.
Dann kannst Du auf dem Hauptprogramm noch klicken -> verarbeiten.
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
sharkx

Registriert seit: 24. Feb 2003
Ort: St. Ingbert
211 Beiträge
 
Delphi 7 Enterprise
 
#5
  Alt 23. Apr 2003, 00:48
huhu :>

@Lucky, Marco:

Euer vorschlag hat das Problem gelöst. vielen dank!


@Mirlin

Mit TThread-Objecten habe ich leider noch nicht gearbeitet. Daher habe ich 0 Plan wie des so gehen soll :/ Wenn du nen beispiel, oder ein gutes Tutorial darüber hast, wäre des 1a <g>

cu
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#6
  Alt 23. Apr 2003, 06:30
Wenn deine C-Kenntnisse gut sind, dann schau dir mal das PC MAGAZIN 5/2003 an. Dort findest du auf der Heft-CD einen Portscanner, der in C geschrieben wurde und Threads benutzt.
Ich habe den Beitrag im PC MAGAZIN aber bisher auch bloß gelesen. Den Code habe ich mir noch nicht angeschaut. Darum kann ich dir auch leider nicht sagen, ob er sich einfach nach Delphi umsetzen lässt ... oder nicht ...

Gruß.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz