java Socket响应http请求
时间: 2023-12-07 10:11:45 浏览: 124
要响应HTTP请求,需要使用Java中的ServerSocket类来监听端口,并接受来自客户端的连接请求。一旦连接被接受,就可以通过Socket对象获取输入和输出流,并读取客户端发送的请求信息,然后构造响应并发送回客户端。
以下是一个简单的例子:
```java
import java.io.*;
import java.net.*;
public class HttpServer {
public static void main(String[] args) throws Exception {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("Server started on port 8888");
while (true) {
Socket socket = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
if (line.isEmpty()) {
break; // HTTP请求头部结束,开始读取请求体
}
System.out.println(line);
}
PrintWriter out = new PrintWriter(socket.getOutputStream());
out.println("HTTP/1.1 200 OK");
out.println("Content-Type: text/html; charset=utf-8");
out.println("");
out.println("<html><body><h1>Hello, World!</h1></body></html>");
out.flush();
socket.close();
}
}
}
```
这个简单的HTTP服务器会监听本地的8888端口并接受来自客户端的连接请求,然后读取请求信息并发送一个简单的HTML响应。当你在浏览器中访问 http://localhost:8888 ,你应该能看到 "Hello, World!" 字符串。
当然,这个例子非常简单,实际上HTTP协议比这个复杂的多。在实际应用中,你需要更全面地了解HTTP协议并编写更复杂的服务器端代码。
阅读全文