[МУЗЫКА]
[МУЗЫКА] Здравствуйте.
С вами я, Николай Булахов, и мы продолжаем изучать компьютерные сети.
Для полноты картины нам с вами остается посмотреть,
как выглядит общение по сети с точки зрения программиста.
Для PC 3 и PC 4 у вас уже установлено все необходимое программное обеспечение,
они объединены в сеть, и к тому же у нас с вами есть компилятор G++.
На нашем виртуальном компьютере PC 3 напишем и скомпилируем TCP-сервер,
который будет ожидать входящего соединения,
а при получении текстовой фразы выводить ее на экран и отсылать ответное сообщение.
В домашней папке при помощи встроенного в
Midnight Commander текстового редактора создайте файл server.cpp.
Вы можете сделать это двумя способами: либо нажмите Shift + F4,
либо введите в командной строке команду touch server.cpp.
Затем вам придется открыть файл на редактирование при помощи
все той же клавиши F4.
В него поместите следующий код.
Вы видите его на экране,
также он доступен в виде дополнительного ресурса к данному курсу.
В начале мы должны подключить все
необходимые библиотеки: директивы #include.
Затем создаем так называемый socket,
на русский можно вольно перевести как гнездо для внешних подключений.
Через него мы будем пересылать данные.
Если после создания socket все в порядке, указываем параметры socket.
Основное это, конечно же, адрес,
на который мы будем принимать подключения, и порт.
Далее наша программа должна ожидать входящих соединений.
Если таковое обнаружится,
делаем копию процесса и обрабатываем входящее соединение.
Дожидаемся входящего сообщения.
Выводим его на экран и отправляем обратно ответное сообщение,
после чего завершаем сеанс.
Сохраните файл, это можно сделать при помощи клавиши F2,
затем выйдите из редактора.
Чтобы из исходного кода получить исполняемый файл нам
надо его откомпилировать.
Для этого выполните следующую команду: gcc
пробел − O пробел,
далее вы указываете имя выходного исполняемого файла,
в нашем случае server, через пробел укажите
имя файла с исходными кодами, в нашем случае server.cpp.
После того как процесс компиляции завершится, удостоверьтесь,
что компилятор не выдал ошибок.
Запустить полученную программу можно при помощи
команды ./ и имя исполняемого файла.
Полностью аналогичным образом на виртуальном компьютере
PC4 создайте файл client.cpp.
Наполните его соответствующим содержимым,
оно также доступно в виде ресурса к данному курсу.
Итак, в самом начале клиента записываем следующую логику
функционирования: когда client запускается, он считывает из аргументов
командной строки порт и IP-адрес, на который надо соединиться.
Аналогично создаем tcp-socket, подключаемся и передаем строку текста.
Следует отметить, что пересылка данных между устройствами в основном
аналогична чтению данных из файла и записи в него.
Собственно, в client нет ничего нового относительно server.
Разнится лишь логика его работы.
Поэтому выйдите из текстового редактора, предварительно сохранив файл,
после этого, аналогично предыдущему случаю, нам надо откомпилировать
наш файлик client.cpp для того, чтобы получить исполняемый файл.
Запустите получившийся исполняемый файл,
указав адрес получателя как адрес компьютера PC3.
То есть вы должны набрать в командной строке ./client
пробел IP-адрес PC3 пробел port, на который необходимо установить соединение.
Если выполнили все правильно, то вы увидите, как сервер, запустившись,
ожидает входящее соединение.
После того как client установил соединение и отослал тестовую фразу,
сервер выведет ее на экран и отошлет в ответ клиенту ответное сообщение,
которое тоже будет выведено на экран.
После этого они завершат свою работу.
Уверен, что те, кому необходимо, разберутся в процессе подробнее.
Все остальные сформировали общую картину происходящего.
На этом данный курс лекций подошел к концу.
Я искренне рад, что вы посмотрели все материалы и не сошли с дистанции.
Настало время попрощаться.
Надеюсь, мы еще встретимся с вами в новых курсах.
С вами был я, Николай Булахов, программист лаборатории автоматизации радиофизических
исследований и старший преподаватель кафедры квантовой электроники и фотоники.
[МУЗЫКА] [МУЗЫКА]
[МУЗЫКА]