我出于锻炼目的编写了一个非常简单的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 /发送请求时... ...>
(我假设您正在浏览器中使用完全相同的URL并使用curl
...]
[如果浏览器在服务所在的其他主机上运行,则原因是localhost
IP地址(例如127.0.0.1
)未路由到发送主机之外的任何其他主机。 (这就是“本地”的意思。。。总之,这是正常的行为。 (也许您在不同的主机上运行curl
和浏览器。)
浏览器仅了解http
和其他协议,例如ftp
。您的serverSocket
没有实现任何协议。如果您想看些东西,也许可以在控制台中尝试]
好像端口6666有一些安全问题(https://www.speedguide.net/port.php?port=6666),请尝试使用其他端口,例如端口3000或5000(我在这里只是抛出一个数字),它应该可以工作。