0

我仍在学习 java 并尝试使用 Sockets 构建一个基本的 WebServer,现在我让服务器正常工作并将输出数据发送回浏览器,但我不确定如何发送我认为它们只是“\r\n”的标头\r\n" 来自内容正文

这就是我当前写入浏览器的方式

Socket socket = socketServer.accept();
System.out.println("Web Request From: "+socket.getInetAddress().toString());

BufferedReader in = new BufferedReader(
     new InputStreamReader(socket.getInputStream())
);
PrintWriter out = new PrintWriter(socket.getOutputStream());
Stirng output = "<!DOCTYPE html><html><body><h1>403 Forbidden</h1></body></html>"
out.write(output, 0, output.lenght());
out.flush();
out.close();
4

3 回答 3

1

将标题放在输出字符串中,彼此之间用 . 分隔,\r\n与主体之间用 . 分隔\r\n\r\n。或者,使用 PrintWriter 只需一个一个地打印它们,一个空行,然后是正文。

于 2013-03-23T13:42:50.200 回答
1

你应该看看NanoHttpd。它是一个单文件 Web 服务器,玩起来很有趣。他们正在发回标头,因此您应该能够相当轻松地查看他们的代码并了解他们在做什么。

于 2013-03-23T14:08:23.957 回答
0

您被迫先发送 HTTP 信息

out.println("HTTP/1.0 200"); 

在发送任何其他代码或主体之前需要

于 2013-03-23T14:16:23.597 回答