На этом уроке мы ещё раз построчно и подробно разберём написанные программы и поэкспериментируем с "медленным" сервером. Самостоятельное задание - написать клиент-серверную игру "Угадай число".
Дата отправки отчёта:
12 февраля 2019 г.
Задание выполнено: за
2 час. 0 мин.
Чему научился:
throws Exception == бросает исключение Это один из вариантов обработки возможных ошибок при работе кода. Второй вариант - трайкеч
СЕРВЕРНЫЙ сокет привязывается к указанному в его аргументах порту и ждёт входящих подключений методом .accept()
Если подключений предполагается более одного - организуем бесконечный цикл с помощью while(true)
КЛИЕНТСКИЙ сокет создаётся конструктором Socket с аргументами сетевого адреса СЕРВЕРА и порта для подключения НА СЕРВЕРЕ
Для ОТПРАВЛЕНИЯ сообщений в поток применяется метод .getOutputStream() помещенный в класс-обёртку OutputStreamWriter, который в свою очередь помещён в класс-обёртку BufferedWriter Эти матрёшки нужны для того, чтобы получить доступ к передаче не только отдельных символов, но и целых строк текста
Для ПРИЁМА (чтения) сообщений создаётся отдельная матрёшка READER, аналогичная описанной выше
1. КЛИЕНТ шлёт запрос Серверу строкой заканчивающейся \n 2. СЕРВЕР читает входящее сообщение методом .readLine() - ВАЖНО, чтобы Клиент отправил строку с \n 3. СЕРВЕР записывает входящий пакет (строку) в переменную, обрабатывает её, добавляя подсчёт длины прилетевшей строки 4. Обработанную строку в переменной response СЕРВЕР отправляет через сокет в путь методом .flush() у экземпляра класса writer предварительно подготовленную в законченную строку методами .write() и .newLine() 5. КЛИЕНТ используя reader.readLine() записывает в строковую переменную response полученный ответ Сервера, и выводит его в консоль 6. Закрываются читатель, писатель и КЛИЕНТСКИЙ сокет их связывавший, чтобы не висели вечно в памяти
Одиннадцатая Java позволяет запускать код без компиляции из командной строки если весь код в одном файле
Что было сложным:
Когда дело дошло до игрищ в командной строке, СЕРВЕР стартовать не желал возвращая ошибку (Иллюстрация номер раз) Решением стало прописать пусть до каталога bin джавы одиннадцатой в переменных средЫ операционной системы. Перезапуск компа и Server started в кармане! Всем удачи на коде, катайтесь - не ломайтесь, приобретайте правильные навыки.