Как прослушать порт 80 с помощью Java Socket - PullRequest
0 голосов
/ 20 октября 2018

У меня есть сервер, порт 80 которого занят HTTP-транзакциями.Я хотел видеть трафик в этом порту, и я пытался использовать программу сокетов для прослушивания этого порта.

public Server(int serverPort) throws IOException {  
    super(serverPort);  
    try {  
        while (true) {  
            Socket socket = accept();  
            new ServerThread(socket);  
        }  
    } catch (IOException e) {  
        e.printStackTrace();  
    } finally {  
        close();
    }  
}  

// inner-class ServerThread  
class ServerThread extends Thread {  
    private Socket socket;  
    private BufferedReader in;  
    private PrintWriter out;  

    // Ready to conversation  
    public ServerThread(Socket s) throws IOException {  
        this.socket = s;  
        in = new BufferedReader(new InputStreamReader(socket  
                .getInputStream(), "UTF-8"));  
        out = new PrintWriter(socket.getOutputStream(), true);  
        start();  
    }  

    // Execute conversation  
    public void run() {  
        try {  

            // Communicate with client until "bye " received.  
            while (true) {  
                String line = in.readLine();  
                if (line == null || "".equals(line.trim())) {
                    break;  
                }  
                System.out.println("Received   message: " + line);  
                out.println(line);  
                out.flush();  
            }  

            out.close();  
            in.close();  
            socket.close();  

        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  

}  

public static void main(String[] args) throws IOException {  
    new Server(80);  
} 

Однако, когда я запускаю это приложение java, оно показывало BindException: Адрес уже используется,

Итак, что я должен сделать с моим кодом и заставить его слушать порт 80, или есть ли другие способы прослушивания этого порта в Java?

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Если я вас правильно понимаю, вы пытаетесь прослушать пакеты, которые передаются на ваш сервер.Если это так, то есть несколько ответов в этом посте.

0 голосов
/ 20 октября 2018

На каком сервере вы его используете?

Все зависит от типа сервера, на котором вы работаете.Например, Tomcat имеет тип порта, с которого он работает, в файле Server.xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...