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

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

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Клиент-серверный сокет / Экспериментальный сервачок

  • На этом уроке мы ещё раз построчно и подробно разберём написанные программы и поэкспериментируем с "медленным" сервером. Самостоятельное задание - написать клиент-серверную игру "Угадай число".
  • Дата отправки отчёта: 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 в кармане! Всем удачи на коде, катайтесь - не ломайтесь, приобретайте правильные навыки.
  • Оценка видео-уроку:
Отчёт от 17947 за Клиент-серверный сокет / Экспериментальный сервачок


Отчёт от 17947 за Клиент-серверный сокет / Экспериментальный сервачок




Оцени работу

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

11589. --
Yefim
Yefim
ответить
→  Dmitry Sinitsin  # Клиент-серверный сокет / Экспериментальный сервачок / 2019-02-12 11:44

Моложец, Дмитрий! Великолерный отчет! Такие продробные отчеты мало, кто делает!  на мой взгляд, отчет следует прикрепить к уроку.


9752. --
chokayes
chokayes
ответить
→  Dmitry Sinitsin  # Клиент-серверный сокет / Экспериментальный сервачок / 2019-02-13 06:14

Ничего себе отчетик. ) Класс!


  • Отчёт оценивали:
    19475Konstantin+1   791Валерий Жданов+1   11589Yefim+1   18688Arslan+1   9913vip+1   20239Юлия+1   19327Yury+1   9980Timoha+1   20659no name+1   3922Александр+1   8275Tekashnik+1   9752chokayes+1   11353AlliZzeN+1  

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





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

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

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

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


Научился: Реализовал игру "угадай число от 1 до 100" удалось угадать с 4 попытки. всё отлично, идём дальше.



Научился: Эксперименты поделал, игру писать не успел, работа отняла всё свободное время(((