Java socket编程,为什么浏览器多次建立连接?
当我使用chrome访问localhost:80时,为什么服务器会打印字符串“Test”3次?当我使用IE10访问它时,它会打印两次。如果您打印出它发出的HTTP请求,您可能会明白原因。最可能的情况是,浏览器正在尝试为您的“站点”(Java socket编程,为什么浏览器多次建立连接?,java,sockets,browser,webserver,Java,Sockets,Browser,Webserver,当我使用chrome访问localhost:80时,为什么服务器会打印字符串“Test”3次?当我使用IE10访问它时,它会打印两次。如果您打印出它发出的HTTP请求,您可能会明白原因。最可能的情况是,浏览器正在尝试为您的“站点”(localhost)加载favicon.ico),或者它正在尝试重新连接到一个不能正确使用HTTP的服务器。如果您打印出它发出的HTTP请求,您可能会看到原因。最可能的情况是,浏览器正在尝试为您的“站点”(localhost)加载favicon.ico),或者它正在尝
localhost
)加载favicon.ico
),或者它正在尝试重新连接到一个不能正确使用HTTP的服务器。如果您打印出它发出的HTTP请求,您可能会看到原因。最可能的情况是,浏览器正在尝试为您的“站点”(localhost
)加载favicon.ico
),或者它正在尝试重新连接到一个不能正确使用HTTP的服务器。当它连接到一个web服务器时,它会请求一些类似favicon的资源。我建议您打印它所要求的内容,这样您就不会猜测为什么它会被多次访问。当它连接到web服务器时,它会要求提供一些资源,如favicon。我建议您打印它所要求的内容,这样您就不会猜到为什么它会被多次访问。非常感谢,我会尝试。非常感谢,我会尝试。正如这个问题的答案所暗示的,当客户机正在谈论更高级别的协议(如HTTP)时,谈论原始套接字可能不是一个好主意:结果可能不是您所期望的。你想在这里完成什么?为什么不使用HTTP服务器的实现呢?Java甚至在sun
包中也包含了HTTP服务器?正如对这个问题的回答所提到的,当客户机正在谈论更高级别的协议(如HTTP)时,谈论原始套接字可能是个坏主意:结果可能不是您所期望的。你想在这里完成什么?为什么不使用HTTP服务器的实现呢?Java甚至在sun
包中也包含了HTTP服务器?
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();
}
}
}