Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Prüfen ob port frei (https://www.delphipraxis.net/47517-pruefen-ob-port-frei.html)

Pseudemys Nelsoni 12. Jun 2005 12:45


Prüfen ob port frei
 
Moin,

wie kann ich mit meinem Programm prüfen, ob z.b der port "3333" frei ist?

Olli 12. Jun 2005 12:54

Re: Prüfen ob port frei
 
Versuchen einen Socket auf diesem Port zu kriegen.Schlägt es fehl, hat ihn jemand anderes belegt. Oder übersehe ich hier was in deiner Frage?

Pseudemys Nelsoni 12. Jun 2005 13:15

Re: Prüfen ob port frei
 
Ja, tust du. Ich möchte das auf eine besser Variante prüfen, das muss doch auch gehen ohne auf den Fehlerfall zu warten oder?

mr47 12. Jun 2005 13:18

Re: Prüfen ob port frei
 
Wenn dus anders testen willst, musst du das verwendete Protokoll wissen und dann versuchen zu dem Port eine Verbindung herzustellen. Wenns net geht ist er zu!

mfg mr47

Duffy 12. Jun 2005 13:22

Re: Prüfen ob port frei
 
Hallo Mario,
ein Port ist nur dann offen, wenn auch auf der anderen Seite eine Application an diesem Port lauscht. Blockt eine Firewall die Verbindung, so ist das so, als ob keiner auf der anderen Seite lauscht. Du wirst also auf Fehler prüfen müssen, um festzustellen, ob ein Port offen ist.

bye
Claus

Pseudemys Nelsoni 12. Jun 2005 16:39

Re: Prüfen ob port frei
 
Moin Duffy,

Es geht um einen Lokalen Server, d.h mein Programm ist der Server der (normalerweise) auf dem Port "12345"(nicht genau so ;)) läuft, vorher möchte ich prüfen ob der port noch verfügbar ist. Also ich verbinde zu niemandem

Duffy 12. Jun 2005 16:51

Re: Prüfen ob port frei
 
Hallo Mario,
dein Programm wird dir sagen, ob es an dem Port lauschen darfst oder nicht. Du bekommst sonst keinen stabilen Zustand deines Programmes hin.

bye
Claus

Pseudemys Nelsoni 12. Jun 2005 16:54

Re: Prüfen ob port frei
 
Hallo Claus,

also kann man nicht direkt mit irgendeiner (API?)Funktion prüfen ob frei bzw nicht frei, oder?
D.h ich muss auf den Fehlerfall reagieren?

Duffy 12. Jun 2005 17:01

Re: Prüfen ob port frei
 
Hallo Mario,
ich kenne keine andere Methode, außer die, daß eine Funktion die Prüfung auf Fehler oder nicht macht und das Ergebnis als Boolean zurückliefert.

bye
Claus

Pseudemys Nelsoni 12. Jun 2005 17:02

Re: Prüfen ob port frei
 
ok, danke ;)

supermuckl 12. Jun 2005 17:33

Re: Prüfen ob port frei
 
wie macht es denn netstat ?

Duffy 12. Jun 2005 17:42

Re: Prüfen ob port frei
 
Hallo Denis,
gute Frage! ich denke es wird geprüft welche Ports Aktivität haben und anhand der Portnummer wird die Datei Services ausgwertet, welche Anwendung es sein sollte.

bye
Claus

Puhbaehr 17. Nov 2005 08:04

Re: Prüfen ob port frei
 
Der Thread hier ist auch schon etwas grau aber... es interessiert mich doch etwas...

Sicher, dass netstat sämtliche Ports prüft?
Ich denke mal eher, dass jeder Dienst der lauschen will seinen Port irgendwo im Windows oder der Netzwerkkarte anmelden muss damit er lauschen darf und das wird irgendwo gespeichert was netstat widerrum ausliest. Sozusagen eine Art Tabelle die von den Diensten angelegt und geführt wird und von netstat und anderen Programmen aufgelistet werden.
Firewalls können ja auch auflisten welche Dienste auf welchen Ports laufen. Ich denke, dass sie auf gleiche Weise auf diese "Tabelle" zugreifen. Und da diese Firewallprogramme (ich denke z.B. an Sygate) diese Liste sekündlich aktualisieren, kann ich mir nicht vorstellen, dass diese alle Ports von 0/1 bis 66535 TCP, UDP usw. durchrassen und dazu rausbekommt welches Programm auf dem Port hockt und ob der Dienst lauscht, wartet, die Verbindung erstellt ist oder sonst was macht. Da hätte die Firewall mindestens eine CPU-Auslastung von > 50 %. Und sowas würde sich keiner installieren.

Übrigens: netstat könnte man z.B. nutzen um im Programm alle laufenden Ports aufzulisten zu lassen :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz