只能通过" localhost"访问我的服务器

时间:2016-04-14 21:03:53

标签: java server

我正在编写一个交易游戏,需要多人游戏。我意识到,我的客户只能通过" localhost"在服务器上运行的PC上。我如何判断服务器是否在线,所以我知道是防火墙还是其他什么?如果有人已经知道解决方案,我会更高兴。

谢谢!

编辑:我的操作系统是Windows 7。

更新: 我设法通过ipconfig找到两个地址,在同一台计算机上连接到我的服务器。我的rooter向我提出的一个我不知道的是另一个来自我。首先,我尝试了通过搜索找到的那个"我的IP"在谷歌上,没有用。我仍然无法通过连接到同一路由器(fritz-box)的其他PC连接到服务器。

    Server:

    ExecutorService executor = Executors.newFixedThreadPool(100);       

    ServerSocket server;        
    try {               
        server = new ServerSocket(5555);    
        System.out.println("Server gestartet");

        while(true){
            Socket client = server.accept();
            executor.execute(new ClientHandler(client));                
        }           

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

    Client:

    try {
            InetAddress addr = InetAddress.getByName("MY IP");                                  
                //Works
                client = new Socket("localhost",Port);
                //Does not work
                client = new Socket(addr,Port);
                //Does not work
                client = new Socket("MY IP",Port);

                System.out.println("Client gestartet");

                //Streams           
                out = client.getOutputStream();
                writer = new PrintWriter(out);

                in = client.getInputStream();
                reader = new BufferedReader(new InputStreamReader(in));
                // ------------------------------------------------         

                String s = null;                    
                while((s=reader.readLine())!=null){
                    render(s);
                }               
            } catch (IOException e) 
            {
            e.printStackTrace();
            }

我离开了ClientHandler,因为我确信没有问题。

1 个答案:

答案 0 :(得分:0)

如果是防火墙问题,您将获得连接超时。如果您拒绝连接',则服务器无法运行。

按照其他地方的建议,修改您的ServerSocket构造。你正在做的方式是正确的。