На этом слайде мы создадим все методы универсального сокета в классе Phone. Протестируйте программу в разных режимах.
Придумайте, какую ещё клиент-серверную программу можно написать.
Дата отправки отчёта:
14 февраля 2019 г.
Задание выполнено: за
1 час. 27 мин.
Чему научился:
объявили в классе Phone сервер и клиент, буферизированный приёмник данных reader и передатчик writer
Первый конструктор Phone (тот, у которого лишь один аргумент - порт) - создаёт серверный сокет. При создании экземпляра серверного сокета в аргументы передаётся порт в виде строки, поэтому его парсим в целое число методом Integer.parseInt()
ALT + ENTER - добавили трайкеч для отлова ошибок
Конструктор клиентского экземпляра сокета принимает уже два аргумента - сетевой адрес и номер порта
IntellijIDEA позволяет добавлять аргументы при запуске программы через пункт Edit Configuration - выпадающее меню у кнопки запуска с названием класса
Необходимости в добавлении \r в моём случае не было. Как в видео - в одну строку у меня не выводило при отсутствии \r и указанной лишь \n И так и эдак перенос строки выполнялся успешно
CTRL + C - остановка Сервера в командной строке
Звездочка, используемая в качестве аргумента "умножение" должна быть заключена в скобки, иначе она воспринимается командной строкой как знак "ВСЕ"
По видео Айдара нашел вариант реализации трайкеч для отлова ошибки деления на ноль, увидел впервые в работе класс ArithmeticException.
Класс ArithmeticException возвращает ошибку когда произошло исключительное арифметическое условие. Например, целочисленное деление на ноль выбрасывает экземпляр этого класса.
Объекты ArithmeticException могут создаваться виртуальной машиной в случаях, как если бы изменение переменной была бы под запретом или трассировка стека была недоступна для записи.
Научился: объявили в классе Phone сервер и клиент, буферизированный приёмник данных reader и передатчик writer
Первый конструктор Phone (тот, у которого лишь один аргумент - порт) - создаёт серверный сокет. При создании экземпляра серверного сокета в аргументы передаётся порт в виде строки, поэтому его парсим в целое число методом Integer.parseInt()
ALT + ENTER - добавили трайкеч для отлова ошибок
Конструктор клиентского экземпляра сокета принимает уже два аргумента - сетевой адрес и номер порта
IntellijIDEA позволяет добавлять аргументы при запуске программы через пункт Edit Configuration - выпадающее меню у кнопки запуска с названием класса
Необходимости в добавлении \r в моём случае не было. Как в видео - в одну строку у меня не выводило при отсутствии \r и указанной лишь \n
И так и эдак перенос строки выполнялся успешно
CTRL + C - остановка Сервера в командной строке
Звездочка, используемая в качестве аргумента "умножение" должна быть заключена в скобки, иначе она воспринимается командной строкой как знак "ВСЕ"
Научился: Научился делать сложение через клиент. НО когда на сервере в терминале выставлять - или / или умножение, через клиент будет происходить "сложение"