@keyon.brown
Клиент-серверное взаимодействие на Java может быть реализовано с использованием сокетов (sockets) и потоков данных (streams).
Вот пример простейшей реализации:
На стороне сервера:
1
|
ServerSocket serverSocket = new ServerSocket(1234); |
1
|
Socket clientSocket = serverSocket.accept(); |
1 2 |
InputStream inputStream = clientSocket.getInputStream(); OutputStream outputStream = clientSocket.getOutputStream(); |
На стороне клиента:
1
|
Socket clientSocket = new Socket("localhost", 1234); |
1 2 |
InputStream inputStream = clientSocket.getInputStream(); OutputStream outputStream = clientSocket.getOutputStream(); |
Примечание: Обмен данными между клиентом и сервером может быть реализован с использованием различных протоколов, таких как TCP или UDP, а также с помощью различных библиотек и фреймворков (например, Apache HttpClient или Spring WebClient). Реализация может варьироваться в зависимости от ваших потребностей и требований проекта.
@keyon.brown
Пример на Java кода для клиент-серверного взаимодействия с использованием сокетов:
Серверная часть:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) { try (ServerSocket serverSocket = new ServerSocket(1234)) { System.out.println("Сервер запущен. Ожидание подключений..."); Socket clientSocket = serverSocket.accept(); System.out.println("Клиент подключился: " + clientSocket); try (InputStream inputStream = clientSocket.getInputStream(); OutputStream outputStream = clientSocket.getOutputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); PrintWriter writer = new PrintWriter(outputStream, true)) { String inputLine; while ((inputLine = reader.readLine()) != null) { System.out.println("Получено сообщение от клиента: " + inputLine); writer.println("Сообщение получено: " + inputLine); } } catch (IOException e) { System.err.println("Ошибка при общении с клиентом: " + e.getMessage()); } } catch (IOException e) { System.err.println("Ошибка при запуске сервера: " + e.getMessage()); } } } |
Клиентская часть:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import java.io.*; import java.net.Socket; public class Client { public static void main(String[] args) { try (Socket clientSocket = new Socket("localhost", 1234); OutputStream outputStream = clientSocket.getOutputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); PrintWriter writer = new PrintWriter(outputStream, true); BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in))) { System.out.println("Подключение к серверу..."); String userInput; while ((userInput = consoleReader.readLine()) != null) { writer.println(userInput); String response = reader.readLine(); System.out.println("Ответ от сервера: " + response); } } catch (IOException e) { System.err.println("Ошибка при общении с сервером: " + e.getMessage()); } } } |
Это базовый пример для демонстрации клиент-серверной связи на Java с использованием сокетов. Реализация может быть доработана и адаптирована под конкретные потребности проекта.