/
f1rment2
/
lab8
Обзор
Документация
Войти
/
f1rment2
/
lab8
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/TcpServer.java
41 строка
2 KB
Ilya
First commit: P2P Voice Chat with Multicast and Codec
02 июн 2026, 00:00
02 июн 2026, 00:00
ecd9191
Код
Авторство
О чём код?
import java.io.*; import java.net.*; public class TcpServer implements Runnable { private final int port; private final AudioEngine audioEngine; public TcpServer(int port, AudioEngine audioEngine) { this.port = port; this.audioEngine = audioEngine; } @Override public void run() { try (ServerSocket serverSocket = new ServerSocket(port)) { while (!Thread.currentThread().isInterrupted()) { try (Socket clientSocket = serverSocket.accept()) { BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); String command = in.readLine(); if (command == null) continue; if (command.startsWith("CALL_START")) { String[] parts = command.split(":"); String remoteIp = clientSocket.getInetAddress().getHostAddress(); int remoteUdpPort = Integer.parseInt(parts[2]); System.out.println("\n[Сигнализация] Входящий вызов! Собеседник UDP Порт: " + remoteUdpPort); audioEngine.startAudio(remoteIp, remoteUdpPort); } else if (command.startsWith("CALL_END")) { System.out.println("\n[Сигнализация] Вызов завершен удаленной стороной."); audioEngine.stopAudio(); } } catch (IOException e) { // Ошибка отдельного соединения, сервер продолжает слушать дальше } } } catch (IOException e) { System.err.println("[TCP Server] Критическая ошибка: " + e.getMessage()); } } }