Java 服务器认为即使请求不存在,请求也会不断出现
我正在编写一个Java服务器,它在浏览器中输出一个请求号。它是一个多线程应用程序,假设为每个请求创建一个新线程并输出下一个数字。它确实有效,但是当我只有一个增量时,数字输出会增加4。所以我有一种感觉,服务器不知何故一直在接收请求,而没有在浏览器中输出它们Java 服务器认为即使请求不存在,请求也会不断出现,java,multithreading,Java,Multithreading,我正在编写一个Java服务器,它在浏览器中输出一个请求号。它是一个多线程应用程序,假设为每个请求创建一个新线程并输出下一个数字。它确实有效,但是当我只有一个增量时,数字输出会增加4。所以我有一种感觉,服务器不知何故一直在接收请求,而没有在浏览器中输出它们 public class ResponseServer { public static void main(String[] args) throws IOException { // TODO Auto-genera
public class ResponseServer {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
int clientNum = 0;
ServerSocket serverSocket = new ServerSocket(8000);
Socket socket = null;
while (true) {
socket = serverSocket.accept();
System.out.println("CLIENT NUM " + clientNum);
new HandleClient(socket, clientNum++).run();
System.out.println("DONE");
}
}
static class HandleClient implements Runnable {
Socket socket;
int counter;
public HandleClient(Socket socket, int counter) {
System.out.println("RECIEVED " + counter);
this.socket = socket;
this.counter = counter;
}
@Override
public void run() {
// TODO Auto-generated method stub
try {
InputStream in = socket.getInputStream();
BufferedReader read = new BufferedReader(new InputStreamReader(in));
OutputStream out = socket.getOutputStream();
String response = "<h2>" + counter + "</h2>";
out.write("HTTP/1.1 200 OK\n".getBytes());
out.write("Content-Type: text/html; charset=utf-8\n".getBytes());
out.write(("Content-Length: " + response.length() + "\n\n").getBytes());
out.write(response.getBytes());
out.flush();
out.close();
} catch (IOException e) {
System.err.println(e);
}
}
}
公共类响应服务器{
公共静态void main(字符串[]args)引发IOException{
//TODO自动生成的方法存根
int clientNum=0;
ServerSocket ServerSocket=新的ServerSocket(8000);
套接字=空;
while(true){
socket=serverSocket.accept();
System.out.println(“CLIENT NUM”+clientNum);
新的HandleClient(套接字,clientNum++)。run();
系统输出打印项次(“完成”);
}
}
静态类HandleClient实现Runnable{
插座;
整数计数器;
公共手持客户端(插座、int计数器){
系统输出打印项次(“接收”+计数器);
this.socket=socket;
this.counter=计数器;
}
@凌驾
公开募捐{
//TODO自动生成的方法存根
试一试{
InputStream in=socket.getInputStream();
BufferedReader read=新的BufferedReader(新的InputStreamReader(in));
OutputStream out=socket.getOutputStream();
字符串响应=“计数器+”;
out.write(“HTTP/1.1200ok\n.getBytes());
out.write(“内容类型:text/html;charset=utf-8\n”.getBytes());
out.write(((“内容长度:”+response.Length()+“\n\n”).getBytes());
out.write(response.getBytes());
out.flush();
out.close();
}捕获(IOE异常){
系统错误println(e);
}
}
}
}Chrome和IE浏览器中有一个bug。代码没有问题-如果您使用Firefox,则工作正常。您使用的浏览器是什么?@SotiriosDelimanolis Google Chrome最新版本如果您打开网络控制台,您可以看到它发送了多少请求。请参阅和