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

时间:2015-12-13 00:04:54

标签: java sockets

我需要在浏览器中输入这样的内容:

  http://localhost:1234/page.html

然后获取“page.html”文件的内容。关键是 - 我使用套接字连接到1234主机但是我应该如何阅读文件的名称并将其传递给我的Socket才能读取不同的html页面?

非常感谢任何形式的帮助。

2 个答案:

答案 0 :(得分:1)

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

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

更好的选择是使用随时可用的Web服务器来完成工作。与tomcat一样。

答案 1 :(得分:0)

您将创建一个标准T​​CP侦听器套接字并相应地进行配置。

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

编辑:在上面的评论中,在GET请求中,您会看到/是您要查找的文件的路径。例如,默认情况下,浏览器只发送一个/那么您应该使用index.htm文件的内容进行响应,因为index.htm应该是索引对吗?所以就这样编码!

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

快乐编码

Here is a link to help you figure out HTTP requests