5 Stimmen

Java-Socket blockiert bei Verbindung mit einem Server

Ich versuche, eine Verbindung zum Server über einen Java-Socket herzustellen. Ich versuche, eine Verbindung von Port 80 zu 90 herzustellen.

int port;
Socket clientsocket;
String hostname = "www.google.com";

for(port = 80;port<=90; port++){
  try{
    clientsocket = new Socket(hostname,port);
    System.out.println("Connection at port " + port + "\t" + clientsocket.isConnected());
    clientsocket.close();
  }
  catch(Exception e){
    System.out.println(e.getMessage());
  }
}

Wenn ich versuche, eine Verbindung zu einer Website wie google.com oder w3schools.com herzustellen, hängt sich mein Programm an der socket() Aufruf für Anschlussnummern außer 80. Da diese Websites nicht über die Ports 81-90 bedient werden, sollte eine Ausnahme ausgelöst werden, aber stattdessen wird sie blockiert. Für Port 80 funktioniert es einwandfrei. Wenn ich versuche, eine Verbindung zum Apache-Server herzustellen, der auf meinem Rechner installiert ist, wird keine Portnummer blockiert und ich erhalte die Fehlermeldung Verbindung verweigert, was das offensichtliche Verhalten ist. Warum also passiert das? Vielen Dank im Voraus.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X