Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions EchoClient.java
Original file line number Diff line number Diff line change
@@ -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(); // ждём клиент
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не сможем отправить сообщение, пока читаем ответ от сервера выше. Надо в отдельный поток убрать отправку

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);
}
}

}
48 changes: 48 additions & 0 deletions EchoServer.java
Original file line number Diff line number Diff line change
@@ -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();
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Аналогично. В отдельный поток

out.write("Сервер:" + wordSvr + "\n");
out.flush(); // выталкиваем все из буфера
System.out.println("Отправлено");

}
} finally {
System.out.println("Сервер закрыт!");
server.close();
}
} catch (IOException e) {
System.err.println(e);
}
}
}


12 changes: 12 additions & 0 deletions Main.java
Original file line number Diff line number Diff line change
@@ -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 {

}