【发布时间】:2012-02-05 15:11:39
【问题描述】:
我正在编写一个小型 Web 服务器,但在解析请求时遇到了问题。我将一个 BufferedReader 解析为一个 LinkedList(这样我就可以根据发送的 POST 数据执行操作。)我发现this answer 解释说由于连接挂起,缓冲区没有终止。我不知道如何关闭它。
我如何打开套接字(以及我是如何关闭它的):
Socket connectionSocket = serverSocket.accept();
InetAddress client = connectionSocket.getInetAddress();
System.out.println(client.getHostName() + " connected to server.");
BufferedReader input = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream(), "UTF-8"));
DataOutputStream output = new DataOutputStream(connectionSocket.getOutputStream());
output.writeUTF(httpHeader(200));
httpHandler(input, output);
connectionSocket.close();
httpHeader 方法形成一个简单的字符串,第一行是“HTTP/1.0”,在这种情况下,下一行是“200 OK”,最后是一个新行。发送的 POST 请求是 HTTP 1.0。
尽可能简洁,我的问题有两个:如何正确响应和关闭 HTTP 1.0 POST 请求/套接字?
【问题讨论】:
标签: java http parsing sockets webserver