构建简单的仿tomcat Web服务器之Socket基本请求响应
以下是一个简单的基于Java Socket编程的Web服务器示例,它能够接收HTTP请求,并返回一个简单的响应。
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class SimpleWebServer {
public static void main(String[] args) throws IOException {
int port = 8080; // 服务器端口
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("Server started on port " + port);
while (true) {
// 接收客户端的连接请求
Socket clientSocket = serverSocket.accept();
System.out.println("Client connected: " + clientSocket.getInetAddress().getHostAddress());
// 处理请求
try {
handleRequest(clientSocket);
} catch (IOException e) {
e.printStackTrace();
}
// 关闭客户端连接
clientSocket.close();
System.out.println("Client disconnected");
}
}
private static void handleRequest(Socket clientSocket) throws IOException {
InputStream inputStream = clientSocket.getInputStream();
OutputStream outputStream = clientSocket.getOutputStream();
// 读取HTTP请求
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
// 写入HTTP响应
PrintWriter writer = new PrintWriter(new OutputStreamWriter(outputStream), true);
String requestLine = reader.readLine(); // 示例仅读取第一行
System.out.println("Request: " + requestLine);
// 构建简单的HTTP响应
writer.println("HTTP/1.1 200 OK");
writer.println("Content-Type: text/html");
writer.println();
writer.println("<html><body><h1>Hello, World!</h1></body></html>");
// 注意:这个简易的服务器没有实现HTTP协议的所有特性,比如多线程处理请求
}
}
这段代码创建了一个简单的Web服务器,监听本地的8080端口。它能够接收HTTP请求,并返回一个简单的HTML页面。虽然这个实现没有处理所有的HTTP头部信息和特性,但它展示了如何使用Java Socket编程来处理网络连接。
评论已关闭