@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 с использованием сокетов. Реализация может быть доработана и адаптирована под конкретные потребности проекта.