我已经构建了一个接受请求的小型网络服务器。问题是,如果我在浏览器中打开它,我的应用程序显示已收到4个请求。为什么4而不只是1?
while (true) {
try {
Socket remote = s.accept();
String sendersIP = remote.getInetAddress().toString();
log.add(sendersIP);
System.out.println("Got new Request");
out.println("HTTP/1.0 200 OK");
out.println("Content-Type: text/html");
out.println("Server: Bot");
out.println("");
out.println("<H1>Welcome</H1>");
out.flush();
remote.close();
} catch (Exception e) {
e.printStackTrace();
}
}
答案 0 :(得分:0)
我建议您仅使用while
来接受客户。
创建一个新线程,您可以在其中处理与Socket remote
相关的所有内容。
线程也应该有一个while循环,从remote
s InputStream
读取
并且在创建后不要立即关闭套接字。然后你就可以看到你的浏览器究竟发送了什么。
因为它现在的方式。您在创建后立即关闭套接字到浏览器。
答案 1 :(得分:0)
看起来这是我的浏览器(Chrome)错误...如果我从eclipse发送请求它只出现一次。