From eeaf35af83846b5270c0f70233e2b86ee442e6c4 Mon Sep 17 00:00:00 2001 From: Vyaceslav Sv Date: Thu, 16 Apr 2020 11:49:32 +0300 Subject: [PATCH] created --- EchoClient.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ EchoServer.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++ Main.java | 12 ++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 EchoClient.java create mode 100644 EchoServer.java create mode 100644 Main.java diff --git a/EchoClient.java b/EchoClient.java new file mode 100644 index 0000000..89d6eba --- /dev/null +++ b/EchoClient.java @@ -0,0 +1,51 @@ +package GeekBrains; + +import java.io.*; +import java.net.Socket; +import java.nio.charset.StandardCharsets; + +class EchoClient { + + private static Socket clientSocket; + private static BufferedReader reader; + private static BufferedReader in; + private static BufferedWriter out; + + public static void main(String[] args) { + + try { + try { + clientSocket = new Socket("localhost", 8080); + reader = new BufferedReader(new InputStreamReader(System.in)); + in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); + out = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream())); + //BufferedReader input = new BufferedReader(new InputStreamReader( StandardCharsets.UTF_8)); +while(true) { + + + + while (in.ready()) { + String serverWord = in.readLine(); // ждём, что скажет сервер + System.out.println(serverWord); // получив - выводим на экран + } + + String word = reader.readLine(); // ждём клиент + out.write(word + "\n"); // отправляем сообщение на сервер + out.flush(); + System.out.println("Отправлено"); + + +} + } finally { + System.out.println("Клиент был закрыт..."); + clientSocket.close(); + in.close(); + out.close(); + } + + } catch (IOException e) { + System.err.println(e); + } + } + + } diff --git a/EchoServer.java b/EchoServer.java new file mode 100644 index 0000000..a1547ac --- /dev/null +++ b/EchoServer.java @@ -0,0 +1,48 @@ +package GeekBrains; + + +import java.io.*; +import java.net.ServerSocket; +import java.net.Socket; +import java.nio.charset.StandardCharsets; + +public class EchoServer { + + private static Socket clientSocket; //сокет для общения + private static ServerSocket server; // серверсокет + private static BufferedReader in; // поток чтения из сокета + private static BufferedWriter out; // поток записи в сокет + private static BufferedReader reader; + + public static void main(String[] args) { + try { + server = new ServerSocket(8080); + System.out.println("Сервер запущен!"); + clientSocket = server.accept(); + try { + in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); + out = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream())); + reader = new BufferedReader(new InputStreamReader(System.in)); + BufferedReader input = new BufferedReader(new InputStreamReader(clientSocket.getInputStream(), StandardCharsets.UTF_8)); +while (true) { + while (input.ready()) { // чтобы считалось несколько строк + String word = input.readLine(); // ждём пока клиент что-нибудь нам напишет + System.out.println("Клиент: " + word); + } + String wordSvr = reader.readLine(); + out.write("Сервер:" + wordSvr + "\n"); + out.flush(); // выталкиваем все из буфера + System.out.println("Отправлено"); + +} + } finally { + System.out.println("Сервер закрыт!"); + server.close(); + } + } catch (IOException e) { + System.err.println(e); + } + } +} + + diff --git a/Main.java b/Main.java new file mode 100644 index 0000000..889a8d5 --- /dev/null +++ b/Main.java @@ -0,0 +1,12 @@ +package GeekBrains; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.ServerSocket; +import java.net.Socket; + +public class Main { + + } +