/
mmarakayeva
/
lab5
Обзор
Документация
Войти
/
mmarakayeva
/
lab5
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/EchoServer.java
71 строка
3 KB
Миленикс
first_commit
14 июн 2026, 18:31
14 июн 2026, 18:31
2299a42
Код
Авторство
О чём код?
import java.io.*; import java.net.*; import java.util.Base64; /** * Сервер эхо с кодированием Base64 * Вариант: получает строку от клиента, кодирует в Base64 и отправляет обратно */ public class EchoServer { private static final int PORT = 12345; public static void main(String[] args) { System.out.println("========================================"); System.out.println(" ЭХО-СЕРВЕР (Base64 кодирование)"); System.out.println("========================================"); System.out.println("Сервер запущен на порту " + PORT); System.out.println("Ожидание подключений..."); System.out.println("========================================\n"); // try-with-resources для автоматического закрытия ServerSocket try (ServerSocket serverSocket = new ServerSocket(PORT)) { // Бесконечный цикл приема клиентов while (true) { // accept() блокируется до подключения клиента Socket clientSocket = serverSocket.accept(); System.out.println("[+] Подключился клиент: " + clientSocket.getInetAddress().getHostAddress()); // Обработка клиента в отдельном потоке (чтобы сервер мог обслуживать нескольких клиентов) Thread clientThread = new Thread(() -> handleClient(clientSocket)); clientThread.start(); } } catch (IOException e) { System.err.println("Ошибка в работе сервера: " + e.getMessage()); } } /** * Обработка подключенного клиента * @param clientSocket сокет клиента */ private static void handleClient(Socket clientSocket) { // try-with-resources для автоматического закрытия ресурсов try (clientSocket; BufferedReader in = new BufferedReader( new InputStreamReader(clientSocket.getInputStream(), "UTF-8")); PrintWriter out = new PrintWriter( new OutputStreamWriter(clientSocket.getOutputStream(), "UTF-8"), true)) { String inputLine; // Читаем строки от клиента while ((inputLine = in.readLine()) != null) { System.out.println(" Получено от " + clientSocket.getInetAddress().getHostAddress() + ": \"" + inputLine + "\""); // Кодируем строку в Base64 String encoded = Base64.getEncoder().encodeToString(inputLine.getBytes("UTF-8")); // Отправляем закодированный ответ out.println(encoded); System.out.println(" Отправлено клиенту: \"" + encoded + "\""); } System.out.println("[-] Клиент отключился: " + clientSocket.getInetAddress().getHostAddress()); } catch (IOException e) { System.err.println("Ошибка при обработке клиента: " + e.getMessage()); } } }