Java套接字多个请求
我已经构建了一个接受请求的小型Web服务器。问题是,如果我在浏览器中打开它,我的应用程序显示已收到4个请求。为什么是4而不是1Java套接字多个请求,java,sockets,serversocket,Java,Sockets,Serversocket,我已经构建了一个接受请求的小型Web服务器。问题是,如果我在浏览器中打开它,我的应用程序显示已收到4个请求。为什么是4而不是1 while (true) { try { Socket remote = s.accept(); String sendersIP = remote.getInetAddress().toString(); log.add(sendersIP);
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();
}
}
while(true){
试一试{
套接字远程=s.accept();
字符串sendersIP=remote.getInetAddress().toString();
log.add(sendersIP);
System.out.println(“获得新请求”);
out.println(“HTTP/1.0 200 OK”);
println(“内容类型:text/html”);
out.println(“服务器:Bot”);
out.println(“”);
out.println(“欢迎”);
out.flush();
remote.close();
}捕获(例外e){
e、 printStackTrace();
}
}
我建议您在接受客户时使用。
创建一个新线程,处理与套接字远程
相关的所有内容
线程还应该有一个while循环,从remote
sInputStream
并且不要在创建后立即关闭套接字。然后,您可以查看浏览器发送的确切内容
因为现在的情况。创建后立即关闭浏览器的套接字。看起来这是我的浏览器(Chrome)的错误。。。如果我从eclipse发送请求,它只会出现一次。这取决于浏览器的功能。最有可能的是,它要求不同的页面来缓存信息,比如如何使用web服务器。HTML不应该有一个正文部分吗?你能不能显示out
的声明?HTTP中的行终止符是\r\n
,而不是为println()
@mike PrintWriter out=new PrintWriter(remote.getOutputStream())提供的任何平台;