Код IT
← Каталог

Простые приложения на Java — Простой HTTP-сервер и клиент

Фрагмент из «Простые приложения на Java»: Простой HTTP-сервер и клиент.

Java main.java
// --- Сервер ---

import java.io.*;
import java.net.*;

public class SimpleHttpServer {
    public static void main(String[] args) throws IOException {
        int port = 8080;
        ServerSocket serverSocket = new ServerSocket(port);
        System.out.println("Сервер запущен на порту " + port);

        while (true) {
            Socket clientSocket = serverSocket.accept();
            handleClient(clientSocket);
        }
    }

    private static void handleClient(Socket socket) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        PrintWriter out = new PrintWriter(socket.getOutputStream(), true);

        String requestLine = in.readLine();
        System.out.println("Запрос: " + requestLine);

        String response = "HTTP/1.1 200 OK\r\n" +
                          "Content-Type: text/plain\r\n" +
                          "\r\n" +
                          "Hello from Java Server!";

        out.println(response);
        socket.close();
    }
}

// --- Клиент ---

import java.io.*;
import java.net.*;

public class HttpClient {
    public static void main(String[] args) throws IOException {
        URL url = new URL("http://localhost:8080");
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        
        connection.setRequestMethod("GET");
        
        int status = connection.getResponseCode();
        System.out.println("Статус ответа: " + status);

        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String inputLine;
        StringBuilder response = new StringBuilder();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();
        
        System.out.println("Ответ сервера: " + response.toString());
    }
}
// --- Сервер ---

import java.io.*;
import java.net.*;

public class SimpleHttpServer {
    public static void main(String[] args) throws IOException {
        int port = 8080;
        ServerSocket serverSocket = new ServerSocket(port);
        System.out.println("Сервер запущен на порту " + port);

        while (true) {
            Socket clientSocket = serverSocket.accept();
            handleClient(clientSocket);
        }
    }

    private static void handleClient(Socket socket) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        PrintWriter out = new PrintWriter(socket.getOutputStream(), true);

        String requestLine = in.readLine();
        System.out.println("Запрос: " + requestLine);

        String response = "HTTP/1.1 200 OK\r\n" +
                          "Content-Type: text/plain\r\n" +
                          "\r\n" +
                          "Hello from Java Server!";

        out.println(response);
        socket.close();
    }
}

// --- Клиент ---

import java.io.*;
import java.net.*;

public class HttpClient {
    public static void main(String[] args) throws IOException {
        URL url = new URL("http://localhost:8080");
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        
        connection.setRequestMethod("GET");
        
        int status = connection.getResponseCode();
        System.out.println("Статус ответа: " + status);

        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String inputLine;
        StringBuilder response = new StringBuilder();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();
        
        System.out.println("Ответ сервера: " + response.toString());
    }
}