所以我正在创建一个Web服务器。我想我的一切都很好,但令我困惑的一件事就是持久的联系。 我已经设置了逻辑,以便检测是否指定了“关闭连接”。如果是这样,它将关闭连接并打开一个新连接。否则它将检测到连接应该保持活动状态。我迷路的地方是如何实现保持连接的活跃。
服务器将读取标题的每一行,并在执行此操作后(以及在写完所请求的信息之后),它将根据我们是否要保留连接来汇集到这两个语句中的一个:
if (!keepAlive) {
System.out.println("close");
clientSocket.close();
in.close();
write.close();
}else{
System.out.println("keep alive");
}
这个if-else语句是在一个连续的while循环中。我想我已经正确设置了非持久性部分。关于如何实现持久性的任何建议?
答案 0 :(得分:0)
您所要做的就是循环读取请求,而不是只读取一个请求。设置读取超时,这样就不会无限期地卡在那里。如果您阅读EOS而不是请求,或者指定了Connection: close
,则跳出循环。