Autor Beitrag
Savage
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110



BeitragVerfasst: Mi 07.08.02 20:43 
Hi @all,

gibt es eine Funktion, mit der ich prüfen kann, ob ein Port bereits besetzt ist?

Bin für jede Hilfe offen :wink:

mfg
Savage
cbs
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207
Erhaltene Danke: 1



BeitragVerfasst: Mi 07.08.02 20:46 
Tag auch

schau mal hier nach: PORT NUMBERS
da findeste ne auflistung mit port nummern die normalerweise verwendet werden
Savage Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110



BeitragVerfasst: Mi 07.08.02 21:15 
naja ok,

das ist eine schöne Liste von Portnummern, die belegt oder auch nicht belegt sein können. Das bringt mir jedoch leider nicht die 100%ige Sicherheit, dass ich nicht doch ausversehen ein Port doppelt verwende.

Es gibt bestimmt eine Funktion, oder API, die mir wiedergibt, ob ein Port besetzt ist oder halt nicht.

Hat also noch jemand ne Idee?

mfg
Savage
hitstec
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 295



BeitragVerfasst: Do 08.08.02 17:58 
Habe ich leider bisher noch nicht gesehen. Aber geben muss es, sonst gäbe es keine Firewalls.
kamil
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Fr 09.08.02 01:21 
einfach eine verbindung zu jedem port aufbauen und schauen, ob die verbindung angenommen wird oder ein fehler auftaucht. (falls ja port frei)

oder umgekehrt:
einen server auf jedem port starten und schauen, ob ein fehler auftaucht oder nicht. (falls ja port belegt)

Kamil
hitstec
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 295



BeitragVerfasst: Fr 09.08.02 01:22 
Das bringt eine Firewall leider dazu diesen Versuch als Verbindung ins Internet zu betrachten, was folgt ist eine Meldung der Firewall. Das sollte aber möglichts vermieden werden.
Savage Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110



BeitragVerfasst: Fr 09.08.02 08:07 
Zitat:
einfach eine verbindung zu jedem port aufbauen


Das Problem ist nur, wenn ein Servergestartet ist, der die Verbindung Blockt. Das würde dann ergeben, das der Client einen Fehler meldet, was dann bedeuten würde, dass der Port frei wäre, was er aber eigentlich nicht ist.

Zitat:
einen server auf jedem port starten


Diese Idee kam mir auch schon, bloß leider taucht ein unangenehmer API Fehler auf, den man nicht einfach so unterdrücken kann (oder?), wenn der Port bereits besetzt ist.

bin weiterhin für jeden Vorschlag offen :)

mfg
Savage
kamil
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Fr 09.08.02 14:14 
1.falls der server die verbindung blockt bekommt man eine andere fehlermeldung (verbindund nicht akzeptiert) falls der port frei ist kommt host nicht erreichbar. dadurch kann man es unterscheiden.

2.benutzt du die TServerSocket Komponente? falls ja das ereignis onerror setzten, dann kommt kein fehler.

kamil
Savage Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110



BeitragVerfasst: Fr 09.08.02 15:43 
hmm, das kanns nicht wirklich sein, ich will ja als guter Programmierer nicht einen Fehler provozieren (auch wenn ich ihn abfangen könnte) um mein Ziel zuerreichen.

@kamil

wo hat die Serversocket Kompo ne OnError? Da gibts nur ne OnClientError und der wird nicht bei einen API Fehler (API 'Bind') ausgelöst.

bin immernoch für Vorschläge offen und werd das mal mit den Clienten testen.

mfg
Savage