Мы познакомились с принципом работы сокетов. Теперь самое время создать какую-нибудь простую клиент-серверную программку. На этом видео мы сформулируем техническое задание. Попробуйте самостоятельно написать программу по ТЗ.
Дата отправки отчёта:
1 декабря 2018 г.
Задание выполнено: за
2 час. 2 мин.
Чему научился:
В принципе, мне ясно как писать эту программу. На скриншоте в начале приведено техническое задание по видео, а затем мой вариант.
Что было сложным:
Моя Java11 не принимает Java Socketor, а Java Socketor.java работает. Поскольку нас призывают к максимальному упрощению и мы используем всегда порт 8000 и ip для клиента 127.0.0.1, то указывать их в качестве параметров нет необходимости. Кроме того, мне показалось более логичным в запросе клиента указывать также и операцию и тогда, если программа запускается без параметров, то работает сервер, а если с параметром, то клиент. С учетом сказанного моё ТЗ выглядит так:
Молодец, Ефим, отличная идея, хотелось бы уточнить некоторые нюансы, по поводу того, стоят ли они свеч! По поводу того, что мы используем всегда один и тот же айпи и порт, но передаём их через параметры, это даёт возможность реализовать универсальное приложение, так как можно будет указать необходимый айпи, чтобы проверить по локалке или интернет, а другой порт, если 8000 занят. По поводу того, чтобы клиент передавал тип операции, это усложнит код серверной части, так как нагрузка возрастёт в 4 раза, а можно запустить 4 сервера, чтобы каждый выполнял только своё, тем самым создадим кластер, так как сервера могут располагаться на разных серверах и иметь различные айпи и порты, если их клиент знает, он будет знать где производятся необходимые вычисления. Распределённое вычисление очень важная часть в современном мире и задел на будущее.
Все таки не соглашусь насчет убирания айпи адреса. Так как клиент может и должен быть запущен с разных компов, поэтому адрес указывать обязательно. Порт можно одинаковый вездесделать . А ИП - нет.
Отчёт оценивали: 9913. vip+117947. Dmitry Sinitsin+1791. Валерий Жданов+11. Евгений Волосатов+118131. Александр+110558. Иван Воронин+116568. Игорь Тюлькин+16203. Николай Миролюбов+119384. Владимир+18932. Алекс+117606. Виктор+11950. Sergey Potapov+13922. Александр+114981. DimanDOS+18275. Tekashnik+1
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: составили техническое задание для создаваемого приложения.
1. Приложение консольное
2. Запуск из командной строки
3. Аргументы из командной строки (консоль)
4. Единая программа с выбором режима из двух вариантов: Сервер или Клиент
5. Программа работает с арифметическими операциями в зависимости от режима запущенного на Сервере Трудности: набрал код Айдара - работает. Записал видео дабы разобраться в организации приложения. В общем и целом всё понятно, но сам из головы бы не написал - в этом проблема, которая как решается пока не понимаю. Может если продолжить учиться, когда-то да появится твердь вместо болота в башке?
Научился: Реализовал программу Socketor - клиент-серверный калькулятор. Поразительно, но сам клиент-серверный обмен был написан довольно быстро :) Много времени ушло на парсинг командной строки, обработку ошибок ввода, проверка деления на ноль. Спасибо Евгений Витольдович, я хорошо попрактиковался :)