wie prüfe ich ob ein port frei is ?

ryane

Mitglied
Hallo jungs ,
ich suche seit gestern nach einer Methode zum prüfen , ob ein Port bereit verwendet wird (Address Already in use) . Ich habe mit dem folgenden code probiert , und wollte dabei den fall behandeln , wenn ein Exception auftritt aber es klappt nicht , hat jemand dabei eine bessere idee :

Java:
bool belegt = false;
ServerSocket socket = null;
try {
    serverSocket = new ServerSocket(port);
} catch (IOException e) {
    belegt = true;
} finally { 
    // Clean up
    if (socket != null) socket.close(); 
}

Ich kann kein Exception abfangen


hier is die Meldung von Netbeans wenn , der port bereit verwendet wird.

SCHWERWIEGEND: null
java.net.SocketException: Unrecognized Windows Sockets error: 0: Cannot bind
at java.net.PlainDatagramSocketImpl.bind0(Native Method)
 
G

Gast2

Gast
Ich kann kein Exception abfangen

hier is die Meldung von Netbeans wenn , der port bereit verwendet wird.

SCHWERWIEGEND: null
java.net.SocketException: Unrecognized Windows Sockets error: 0: Cannot bind
at java.net.PlainDatagramSocketImpl.bind0(Native Method)


Du behandelst ja auch eine IOException und keine SocketException. Bei Sockets können eine ganze Latte Exceptions hochblubbern. Und selbst dann heißt es noch lange nicht das du einfach den alten socket schließen kannst um den Port sofort wieder frei zu machen. AFAIK gibt das TCP/IP Stack auch wenn der Socket geschlossen ist den nicht sofort wieder frei, sondern braucht ein paar Sekunden um aufzuräumen. Also schließen, 5 Sekunden warten, neu öffnen. Das "warten, neu öffnen" dann in einer Schleife bis es funktioniert hat.
 

ryane

Mitglied
Ich habe statt IOEception SocketExcepion geschrieben und das schliessen des Port entfernt ,aber klappt auch nicht . Ich möchte eigentlich den port nicht danach wieder schliessen , sondern dem benutzer sagen , dass er später noch versuchen soll ,da der Port bereit in verwendung durch eine andere application ist.
hast du dabei eine idee ?
 
G

Gast2

Gast
Java:
ServerSocket socket = null;
try {
    serverSocket = new ServerSocket(port);
} catch (Exception e) {
    System.err.println("cannot create socket, try again later");
}

?

Kommt auf den Rest deiner Anwendung an - das kann man pauschal so gar nicht sagen.
 

ryane

Mitglied
Danke , damit kann ich schon weiter kommen .
habe auch eben grade ein ähnliches Code geschrieben und konnte immer ein IOException : null abfangen , das habe ich dann als besezt interpretiert.
 

Michael...

Top Contributor
Warum interpretieren, wenn man doch mit
Code:
Exception#getMessage();
eine Recht leserliche Fehlerbeschreibung bekommt.
Kommt da bei Dir tatsächlich null?
Ich bekomme bei belegtem Port eine BindException mit der Meldung Adress already in use.
 

ryane

Mitglied
Bei mir kommt es null raus , ich weiss auch nicht warum .....
Ich habe eine IOException abgefangen .. ich werde mal versuchen eine einfache Exception abzufangen und gucken was raus kommt. melde mich dann
Danke
 

HoaX

Top Contributor
SocketException erbt von IOException also sollte es reichen IOException abzufangen. Nimm doch mal nen Debugger und schau nach wer die Meldung ausgibt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R wie prüfe ich , ob ein socket connected is Netzwerkprogrammierung 7
JavaDevOp Socket Status von UDP-Port prüfen (PortUnreachableException funktioniert nicht?) Netzwerkprogrammierung 32
FrankenDerStein Socket UDP Multithreading für ein Port Netzwerkprogrammierung 2
T multithreaded multiport socketListener beendet TCP-Port-Listening Netzwerkprogrammierung 16
C Proxy Server - Antwort auf welchem Port Netzwerkprogrammierung 1
precoc Port Listener Netzwerkprogrammierung 2
T Port forwarding Netzwerkprogrammierung 11
Rudolf Socket An welchen Port sendet ein Mailserver zu einem anderen Mailserver Netzwerkprogrammierung 8
C Socket Connection refused bei Internetverbindung - Welcher Port? Netzwerkprogrammierung 5
S Port abhören Netzwerkprogrammierung 11
M Gleicher Port für Senden und Empfangen ? Netzwerkprogrammierung 17
Dit_ UDP Port testen | Ping Google? Netzwerkprogrammierung 7
J Port lauschen Netzwerkprogrammierung 2
D Weiterer Thread auf Port 843 horcht Netzwerkprogrammierung 7
H Mysql port forwarding Netzwerkprogrammierung 5
Dit_ UDP Port bestimmen | Windows, MAC, Linux... Netzwerkprogrammierung 2
J UDP port packete lesen,wenn dieser besetzt ist Netzwerkprogrammierung 3
T Java Mail port ändern Netzwerkprogrammierung 4
1 Socket Immer offener Port? Netzwerkprogrammierung 11
S Port auf einer bestimmten IP-Adresse auslesen? Netzwerkprogrammierung 6
X Port scannen/schicken Netzwerkprogrammierung 4
W scan remote UDP port Netzwerkprogrammierung 6
M Socket Herausfinden ob server auf port läuft Netzwerkprogrammierung 8
F UDP Receive und Send am gleichen Port Netzwerkprogrammierung 3
G Port freigeben Netzwerkprogrammierung 3
P Sockets +Port Forwarding = Chaos Netzwerkprogrammierung 4
J GSM Modem an Serial Port ansteuern (AT commands) Netzwerkprogrammierung 2
T Server ohne Port Netzwerkprogrammierung 4
Schandro Herausfinden ob hinter einem Port bereits ein ServerSocket steckt Netzwerkprogrammierung 2
ABstraCT Applet multipler port Zugriff möglich ? Netzwerkprogrammierung 5
ABstraCT Telnet port Zugriff problem (public IP) Netzwerkprogrammierung 12
T ohne Port Freigabe. Netzwerkprogrammierung 6
K Problem mit Com-Port-Komunikation Netzwerkprogrammierung 57
G "Port already in use" RMI über SSL Netzwerkprogrammierung 9
S port lauschen Netzwerkprogrammierung 2
feuervogel Sockets - Lokalen Port aber nicht IP bestimmen Netzwerkprogrammierung 3
G port scanner Netzwerkprogrammierung 6
S Port mithören Netzwerkprogrammierung 9
P jakarta.HttpClient: Port bei GetMethod angeben Netzwerkprogrammierung 3
A port noch belegt Netzwerkprogrammierung 3
K Port 13 nur einmal abfragbar? Netzwerkprogrammierung 2
R Problem mit mehreren Anfragen auf demselben Port Netzwerkprogrammierung 2
TRunKX Ein Port mehrere Verbindungen? Netzwerkprogrammierung 7
H Port abhören Netzwerkprogrammierung 3
F freien Port finden Netzwerkprogrammierung 7
S GEHT DAS? - Nur eine Frage! (Printer Port direkt ansteuern?) Netzwerkprogrammierung 4
T Kann man jeden Port für Programm verwenden? Netzwerkprogrammierung 2
T PORT 80 überwachen Netzwerkprogrammierung 12
G an port lauschen Netzwerkprogrammierung 10
K nicht physikalische com port ansprechen ? Netzwerkprogrammierung 3
S SSLSocketFactory.createSocket(String hostname, int port),wo? Netzwerkprogrammierung 5
G Port belegt nach Server restart Netzwerkprogrammierung 5
R Port trotz aktiver Firewall nutzen ! Netzwerkprogrammierung 9

Ähnliche Java Themen

Neue Themen


Oben