端口80上的ServerSocket是正确的吗?

时间:2015-03-04 22:43:03

标签: java serversocket

我阅读了一些关于ServerSocket的资料并尝试在端口80上进行监听并打印例如我在网络浏览器中打开的网站的InetAddress,但我的程序无法执行此操作。我的代码:

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

当我运行我的程序时,我只有一次在while循环中并且程序不会打印System.out.println(socket.getInetAddress()),因此当我打开我的Web浏览器并访问http站点时,我看不到任何输出。你知道我做错了什么吗?你知道如何打印当前开放网站的InetAddress吗?任何材料都会欣赏。

1 个答案:

答案 0 :(得分:0)

如果没有适当的声誉我就无法发表评论,所以请原谅我把所有东西扔到这里:
你可能已经在端口80上听了一些东西 您可能正在运行的Linux版本上限制非root进程绑定到1024以上的端口 您可能被软件防火墙阻止