Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович

Клиент-серверный сокет / ФИНАЛЬНЫЙ УРОК

  • Оставьте отзыв об этом миникурсе и отчитайтесь за самостоятельное задание.
  • Дата отправки отчёта: 5 декабря 2018 г.
  • Задание выполнено: за 31 мин.
  • Чему научился: Отличный мини-курсик, подобное уже реализовывали на C#, но тут вышло более красиво, подобный класс теперь можно использовать для реализации игр по сети на двоих и более игроков. Можно начать с игры крестики нолики, думаю проще некуда. И не совсем примитивное как угадайка.
    з.ы.
    создал батника для генерации jar файла, так же создал батника для каждого режима работы сервера, см. видео.
  • Что было сложным: найти время
  • Оценка видео-уроку:
  • Видеозапись: https://youtu.be/oAxmC6cTFyY
Отчёт от 10558 за Клиент-серверный сокет / ФИНАЛЬНЫЙ УРОК




Оцени работу

 
Сохранить страницу:

10558. --
Иван Воронин
Иван Воронин
ответить
# Клиент-серверный сокет / ФИНАЛЬНЫЙ УРОК / 2018-12-05 19:51

забыл написать, что температура 37.2, поэтому без личных комментариев, думаю по видео и так ясно, что происходит.


1. KF
Евгений Волосатов
Евгений Волосатов
ответить
→  Иван Воронин  # Клиент-серверный сокет / ФИНАЛЬНЫЙ УРОК / 2018-12-06 00:56

Хорошее видео. Коротко и по делу. Выздоравливай. А для этого выдели денёк для отдыха.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Евгений Волосатов  # Клиент-серверный сокет / ФИНАЛЬНЫЙ УРОК / 2018-12-06 17:20

Спасибо, именно так и сделаю сегодня, только суточную сделаю вначале. На работе новый Генеральный директор, куча перестановок, переносов компов и телефонов из комнаты в комнату. А так как я там сам недавно, то в полевых условиях перенастраивал всё, переносил и одновременно изучал кривизну протяжки кабелей от мини-атс до станций. В общем весело иной раз там =) когда закончу полную инвентаризацию, займусь реализацией ПО под ключ, для мониторинга и безопасности всей инфраструктуры.


  • Отчёт оценивали:
    17606Виктор+1   10558Иван Воронин+1   19384Владимир+1   9913vip+1   17947Dmitry Sinitsin+1   1950Sergey Potapov+1   18131Александр+1   3922Александр+1   1Евгений Волосатов+1   791Валерий Жданов+1   10494Алексей В.+1   5649Максим Лапшинов+1   3747Сергей+1  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Отличный курс по созданию клиент-серверного приложения, на котором подробно объяснён процесс передачи информации между программами.



Научился: Клиентский метод .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