Untitled
unknown
plain_text
a year ago
2.0 kB
9
Indexable
import java.io.*;
import java.net.*;
import java.util.concurrent.*;
public class SimpleHttpServer {
private static final int PORT = 8080;
private static final int THREAD_POOL_SIZE = 5;
private static ExecutorService executorService;
public static void main(String[] args) {
// Initialize the executor service with 5 threads
executorService = Executors.newFixedThreadPool(THREAD_POOL_SIZE);
try (ServerSocket serverSocket = new ServerSocket(PORT)) {
System.out.println("Server is listening on port " + PORT);
while (true) {
// Accept a new client connection
Socket clientSocket = serverSocket.accept();
// Handle the request using a separate thread
executorService.submit(() -> handleRequest(clientSocket));
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static void handleRequest(Socket clientSocket) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter writer = new PrintWriter(clientSocket.getOutputStream(), true)) {
// Read the HTTP request (simple GET request in this example)
String line;
while ((line = reader.readLine()) != null) {
if (line.isEmpty()) {
break; // End of request headers
}
System.out.println(line); // Log the request for debugging
}
// Send a basic HTTP response
String response = "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nHello, World!";
writer.write(response);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Editor is loading...
Leave a Comment