Блокировка сокета Java при подключении к серверу

Я пытаюсь подключиться к серверу через сокет Java. Я пытаюсь подключиться с порта 80 на 90

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());
  }
}

. Когда я пытаюсь подключиться к любому веб-сайту, например google.com или w3schools.com, моя программа зависает от вызова сокета () для номеров портов, кроме 80. Поскольку эти веб-сайты не обслуживают порты 81-90, они должны вызывать исключение, но вместо этого оно блокируется. Для порта 80 работает нормально. Когда я пытаюсь подключиться к серверу apache, установленному на моем компьютере, он не блокируется для любого номера порта и выдает мне ошибку отказа в соединении, что является очевидным поведением. Так почему это происходит? Заранее спасибо.

6
задан Durin 17 April 2011 в 07:04
поделиться