0
import java.io.DataInputStream;
import java.io.DataOutput;
import java.io.DataOutputStream;
import java.net.*;
import java.util.concurrent.*;

public class Server {

    public static void main(String[] args) {
        try {
            ServerSocket serverSocket = new ServerSocket(80);
            while (true) {
                Socket socket = serverSocket.accept();
                System.out.println("Test");
                socket.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

当我使用chrome访问localhost:80时,为什么服务器打印字符串“Test”3次?当我使用 IE10 访问它时,它会打印两次。

4

2 回答 2

3

如果您打印出它发出的 HTTP 请求,您可能会明白原因。最有可能的是,浏览器要么尝试favicon.ico为您的“站点”(localhost)加载,要么尝试重新连接到不正确 HTTP 的服务器。

于 2013-10-15T23:41:42.507 回答
3

当它连接到 Web 服务器时,它会请求一些资源,例如 favicon。我建议您打印它要求的内容,这样您就不会猜到它为什么会被多次访问。

于 2013-10-15T23:41:48.720 回答