1. client.port setzen
2. connecten (mit timeout)
3. connect befehl mit einem try except block umklammern und bei
exception ist der connect missglückt -> port zu
4. bei keiner
exception (client.connected muss dann hierbei auf true sein) bist du connected -> port offen
code ist aus dem kopf!
Code:
if client.connected then client.disconnect;
client.port := 21; // port als beispiel 21 (
FTP)
try
client.connect(5000); // 5 sekunden timeout
if client.connected then offen := true;
except
offen := false;
end;
falls nicht ausgeschalten, wird dir aber delphi das programm anhalten wenn eine
exception auftritt
also die exe ohne die
IDE starten damit es keine fehlermeldungen gibt
an dieser stelle möchte ich aber noch darauf hinweisen, das es so wie es ist, die langsamste methode ist, ports zu scannen.
besser bzw am besten ist es, threads zu verwenden, damit man in den wartezeiten beim connecten mehrere andere hosts bzw ports gleichzeitig connecten lässt und nicht alles nacheinander passiert ( im schlechtesten fall also pro port und pro host 5 sekunden )
mit threads könntest du eine x beliebige ( kommt auf die internetverbindung + cpu und
ram und freie lokale ports ( max 65000 ) an )
anzahl von clients gleichzeitig connecten lassen bzw warten lassen bis connected ist..
näheres dazu findest du in diversen turoials bzw suchfunktion
DP
wenns hart auf hart kommt kann ich dir auch nen source von einem threaded portscanner von mir geben, was ich aber ungern tue, weil da hast du nix dabei gelernt
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!