На этом шаге мы приведем второй пример клиента
Усовершенствуем предыдущее клиентское приложение. Теперь мы будем каждый раз спрашивать текст для отправки. Когда введем слово END_OF_WORK, тогда приложение закончит свою работу.
import java.io.*; import java.net.Socket; public class Client { public static void main(String[] args) throws IOException { // try с ресурсами, чтобы корректно закрыть потом сокет try (Socket socket = new Socket(Constants.HOST, Constants.PORT)) { // Получаем необходимые потоки DataInputStream inputStream = new DataInputStream(socket.getInputStream()); DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream()); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(System.in)); // Будем работать, пока не введем END_OF_WORK while (true) { // Введем текст для отправки System.out.print("Введите текст: "); String text = bufferedReader.readLine(); // Отправляем outputStream.writeUTF(text); outputStream.flush(); // Получаем ответ от сервера String echoText = inputStream.readUTF(); System.out.println("echo: " + echoText); // Если ввели END_OF_WORK прекращаем работу if (Constants.END_OF_WORK.equals(text)) { break; } } // Обязательно закрываем потоки inputStream.close(); outputStream.close(); } } }
Проект можно взять здесь
Рис. 1. Вывод программы
На следующем шаге мы приведем второй пример сервера