Оставьте отзыв об этом миникурсе и отчитайтесь за самостоятельное задание.
Дата отправки отчёта:
14 февраля 2019 г.
Задание выполнено: за
1 час. 58 мин.
Чему научился:
Клиентский метод .getInputStream().read() читает один символ, тогда как класс-обёртка для чтения данных - InputStreamReader способен читать уже строку.
Применили цепочку из создания объектов, на вершине которой классы BufferedReader и BufferedWriter, способные к чтению и созданию полных строк, которые передавались через сетевой протокол между клиентом и сервером.
Приложение для обмена, обработки Сервером полученного, и выведения на экран результата отправки-обработки-приёма реализовывалось как в рамках одного класса (это при том, что запуск доступен в двух ролях Сервера или Клиента), так и в двух классах.
Первый класс Socketor имеет точку входа в программу, отвечает за выбор роли, в которой запускается сокет (сервером или клиентом).
При каждом запуске создаёт новый экземпляр класса и в зависимости ОТ КОЛИЧЕСТВА принятых от пользователя аргументов запускает: метод runServer в роли Сервера или метод runClient в роли Клиента.
=============== Метод runServer создает СОКЕТ - новый экземпляр класса Phone принимая аргументом номер порта для работы.
В бесконечном цикле запускается метод приёма входящих пакетов извне.
В первой полученной строке записывает строковую переменную a.
Во второй полученной строке записывает строковую переменную b.
В целочисленную переменную записывает результат работы метода калькуляции, принимающего аргументами (все строкового типа) знак математической операции, а и b - числа для математической операции.
О полученном решении создаётся строковая переменная, которая: - выводится на экран в консоли Сервера методом System.out.println - передаётся Клиенту для вывода на экран методом phone.writeLine
После вывода на экран соединение с Клиентом закрывается и Сервер возвращается циклом к ожиданию нового входящего соединения.
В этом же цикле реализована проверка деления на ноль. ================ Метод калькуляции парсит в целые числа полученные строковые аргументы, и в зависимости от типа операции возвращает целочисленные результат расчётов.
================ Метод runClient принимает строковые аргументы: - сетевой адрес - номер порта - а и b - числа для математической операции.
Создаётся экземпляр сокета с двумя аргументами (адрес и порт).
Сокет Клиента построчно отправляет а и b - числа для математической операции.
Затем с помощью метода readLine() Клиент получает результат вычислений и выводит его в консоль на экран.
################ Второй класс Phone занимается реализацией сокетов Сервера и Клиента.
Здесь же составлена матрёшка экземпляров классов, способных обрабатывать строковые символы и целые строки из сетевого трафика.
Во всех методах класса Phone применен отлов ошибок try-catch
Проходя данный курс хотел скрестить клиента на C# с сервером на Java. Но что-то опыт не удался. Немного по разбирался и забил не было времени. Но хочется вернуться и добить данный вопрос. Для понимания полной картины мироустройства клиент-серверных приложений.
Отчёт оценивали: 18131. Александр+111353. AlliZzeN+1791. Валерий Жданов+117542. Никита+114981. DimanDOS+1162. Андрей+120659. no name+19752. chokayes+19480. Кирилл+18275. Tekashnik+11710. Степан+13922. Александр+110494. Алексей В.+19913. vip+117947. Dmitry Sinitsin+1
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.