为什么无法通过浏览器连接到本地主机上的http服务器?

问题描述 投票:2回答:3

我出于锻炼目的编写了一个非常简单的Java http服务器。我用cURL测试了它,一切似乎都正常,但是当我尝试从浏览器发送请求时,>

http://localhost:6666/

服务器无响应。我什至在服务器套接字接受连接的点上放置了一个标记System.out.println(),当我尝试通过浏览器访问服务器时,该连接似乎没有触发。这个你能帮我吗。谢谢:)

编辑:部分代码:

public class Server {

    private ServerSocket serverSocket;
    private Socket socket;
    public Server() {
        try {
            serverSocket = new ServerSocket(6666);
            while (true) {
                socket = serverSocket.accept();
                System.out.println("Whoop! Connection!");
                Request request = new Request(socket);
                request.run();
            }
        } catch (IOException e) {
            e.printStackTrace();
          }
    }
}

其中Request是一个扩展Thread以便处理多个请求的类

我出于锻炼目的编写了一个非常简单的Java http服务器。我用cURL进行了测试,似乎一切正常,但是当我尝试从浏览器http:// localhost:6666 /发送请求时... ...>

java http browser curl request
3个回答
2
投票

(我假设您正在浏览器中使用完全相同的URL并使用curl ...]

[如果浏览器在服务所在的其他主机上运行,​​则原因是localhost IP地址(例如127.0.0.1)未路由到发送主机之外的任何其他主机。 (这就是“本地”的意思。。。总之,这是正常的行为。 (也许您在不同的主机上运行curl和浏览器。)


0
投票

浏览器仅了解http和其他协议,例如ftp。您的serverSocket没有实现任何协议。如果您想看些东西,也许可以在控制台中尝试]


-1
投票

好像端口6666有一些安全问题(https://www.speedguide.net/port.php?port=6666),请尝试使用其他端口,例如端口3000或5000(我在这里只是抛出一个数字),它应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.