Лабораторные по работе с linux / 2 / Описание лаб2
.docxЛабораторная работа №2
Лабораторная работа нацелена на изучение основ программирования под операционные системы (ОС) семейства UNIX, работы с сокетами, потоками, и написания makefile-ов. В качестве дистрибутива ОС используется сборка Tinycore Linux.
Термины, которые будут полезны:
Сокет – программный интерфейс для обмена данными между процессами, которые могут быть запущены как на одном хосте, так и на разных (сетевое взаимодействие).
Makefile – файл описания зависимостей между файлами. Как правило, используется при компиляции исходных кодов программ в объектные файлы.
Ход работы
Задание 1: Напишите программу «Hello Wolrd!»
Для написания исходного кода используйте редактор vi
Для компиляции используйте компилятор gcc
Задание 2: Написать клиент серверное приложение работающее локально. Клиент устанавливает соединение с сервером и посылает вводимые пользователем строки. В зависимости от варианта сервер должен:
-
Возвращать полученную строку клиенту в верхнем регистре (aSdF -> ASDF);
-
Возвращать длину полученной строки клиенту (asdf -> 4);
-
Возвращать полученную строку клиенту в обратном порядке (aSdF->FdSa);
-
Возвращать полученную строку клиенту в нижнем регистре (aSdF -> asdf).
Кроме того, клиент после установки соединения с сервером должен каждые 10 секунд отправлять строку на сервер для подтверждения своего присутсвия (реализовать в качестве второго потока).
Клиентское и серверное приложение собирать с помощью makefile-а.
.
Задание 3 (необязательно) : В качестве дополнительного задания, можете реализовать данную задачу через bash-скрипт.
Полезная информация
-
https://rsdn.ru/article/unix/sockets.xml
-
https://en.wikibooks.org/wiki/C_Programming/Networking_in_UNIX
-
https://www.opennet.ru/base/dev/linux_threads.txt.html
-
https://computing.llnl.gov/tutorials/pthreads/
-
http://habrahabr.ru/post/155201/
-
http://www.gnu.org/software/make/manual/make.html