Java/Socket-使用localhost在浏览器中打开文件

Java/Socket-使用localhost在浏览器中打开文件,java,sockets,Java,Sockets,我需要在我的浏览器中放入类似的内容: http://localhost:1234/page.html 然后获取“page.html”文件的内容。问题是-我使用套接字连接到1234主机,但我究竟应该如何读取文件名并将其传递到套接字以读取不同的html页面 非常感谢您提供的任何帮助。您应该阅读套接字的内容并将其解析为HTTP响应 看一看。 解析响应时,可以访问响应的标题,其中包括文件的URL(路径),然后可以读取文件并将内容发送回套接字。当然,您还需要以HTTP响应的形式包装结果 更好的选择是

我需要在我的浏览器中放入类似的内容:

  http://localhost:1234/page.html
然后获取“page.html”文件的内容。问题是-我使用套接字连接到1234主机,但我究竟应该如何读取文件名并将其传递到套接字以读取不同的html页面


非常感谢您提供的任何帮助。

您应该阅读套接字的内容并将其解析为HTTP响应

看一看。 解析响应时,可以访问响应的标题,其中包括文件的URL(路径),然后可以读取文件并将内容发送回套接字。当然,您还需要以HTTP响应的形式包装结果


更好的选择是使用现成的web服务器来完成这项工作。类似。

您将创建一个标准TCP侦听器套接字,并相应地进行配置

当浏览器尝试导航到IP地址和端口时,浏览器会发送HTTP 1.1 GET请求。java程序必须解释请求字符串并做出相应的响应。您的响应必须包含格式正确的HTTP 1.1响应,后跟HTML

编辑:在上面的注释中,在GET请求中,您会看到/是您希望定位的文件的路径。例如,默认情况下浏览器只发送一个/所以您应该用index.htm文件的内容进行响应,因为index.htm应该是索引,对吗?所以用这种方式编码吧

如果这是一个需求(lol),您将在有限数量的线程上创建TCP套接字(因此您应该为此创建一个自定义类),以便多个浏览器可以同时访问您的服务器

快乐编码


哦,是的,这是真的。我已经这样做了,现在我已经做到了:“GET/page.html HTTP/1.1(…)”,但我仍然不知道如何选择这个url——有什么方法可以做到这一点吗?(我已经阅读了有关Socket的oracle文档,但仍然不知道:()我建议您使用现成的解析器来解析数据包的内容。我仍然不知道您在哪一部分遇到了问题。对不起,我花了很多时间试图让它正常工作,所以我停止了逻辑思考。我的死点是获取带有文件路径的标头,然后我不知道如何按顺序将其传递给我的BufferedReader如果可能的话,我想这样做。你可以在你的问题中提供一些代码,如果你这样做,人们可以更好地帮助你。你可以让你的生活比只使用com.sun.httpserver上的内置http服务器实现简单得多。