首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Java套接字监听80端口

如何使用Java套接字监听80端口
EN

Stack Overflow用户
提问于 2018-10-20 05:02:29
回答 3查看 1.7K关注 0票数 1

我有一个服务器,它的端口80被HTTP事务占用。我想查看该端口中的流量,并尝试使用套接字程序来侦听该端口。

代码语言:javascript
复制
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: Address。

那么,我应该如何处理我的代码并使其侦听端口80,或者在Java中有其他方法侦听该端口吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-10-20 05:41:04

如果我理解正确的话,您正在尝试嗅探正在传递到您的服务器的数据包。如果是这样的话,在this post中有一些答案。

票数 1
EN

Stack Overflow用户

发布于 2018-10-20 05:07:00

您在哪台服务器上运行它?

这完全取决于您正在使用的服务器的类型。例如,Tomcat在Server.xml文件中有它运行的端口类型。

票数 0
EN

Stack Overflow用户

发布于 2020-04-17 17:11:48

在Windows中,您可以由管理员运行您的程序。在Linux中使用root用户。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52899872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档