Java: 持久连接编码

Java: coding for persistent connections

所以我正在创建一个网络服务器。我认为我已经做好了一切准备,但让我感到困惑的一件事是持久的联系。 我已经设置了逻辑,以便它可以检测是否指定了 'Close connection'。如果是这样,它将关闭连接并打开一个新连接。否则它将检测到连接应该保持活动状态。我迷路的地方是如何实现保持连接。

服务器将读取 header 的每一行,并且在这样做之后(以及在写入请求的信息之后),它会根据我们是否要保持连接而汇入这两个语句之一:

if (!keepAlive) {

System.out.println("close");
clientSocket.close();
in.close();
write.close();

}else{
System.out.println("keep alive");
}

此 if-else 语句位于一个连续的 while 循环中。我想我已经正确设置了 non-persist 部分。关于如何实现持久性有什么建议吗?

您所要做的就是循环阅读请求,而不是只阅读一个请求。设置一个读取超时,这样你就不会无限期地卡在那里。如果您读取 EOS 而不是请求,或者如果指定了 Connection: close,则跳出循环。