2015-03-04 4 views
0

Я прочитал некоторые материалы о ServerSocket и попытался прослушать порт 80 и напечатать, например, InetAddress веб-сайта, который я открывал в веб-браузере, но моя программа не могла этого сделать. Мой код:ServerSocket на порту 80 это правильно?

import java.io.IOException; 
import java.net.ServerSocket; 
import java.net.Socket; 

public class Site implements Runnable { 
    private int port; 
    Site(int port){ 
     this.port = port; 
    } 
    public void run() { 
     try { 
      ServerSocket server = new ServerSocket(port); 
      while(true){ 
       Socket socket = server.accept(); 
       System.out.println(socket.getInetAddress()); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
    public static void main(String args[]){ 
     Thread thread = new Thread(new Site(80)); 
     thread.start(); 
    } 
} 

Когда я запускаю свою программу, я только один раз в то время цикла, и программа не печатает System.out.println(socket.getInetAddress()) и в результате, когда я открываю свой веб-браузер и посетить сайты HTTP я не см. любой выход. Знаете ли вы, что я делаю неправильно? Знаете ли вы какие-либо другие способы печати InetAddress для открытого веб-сайта? Любые материалы оценят.

+0

Что вы здесь делаете? Я не понимаю. –

+0

Ваша программа выглядит так, как будто она должна работать. Что происходит, когда вы запускаете его? У вас есть исключения? – Kenster

+1

«Не удалось» не является описанием проблемы. Сообщение об ошибке, исключении, трассировке стека, неожиданном поведении, в каком бы то ни было смысле. Измените это на свой вопрос. NB, вам необходимо закрыть принятые сокеты. – EJP

ответ

0

Я не могу комментировать без должной репутации так что простите меня за бросание все здесь:
вы, возможно, уже есть что-то прослушивает порт 80
вы можете быть запущен на версии Linux, который ограничивает процесс нон корневая связывания порты выше 1024
вы можете быть заблокированы программным брандмауэром

+0

Я могу прокомментировать мой ответ, хотя :) можете ли вы опубликовать сообщение об ошибке? – Brian