пятница, 26 июня 2015 г.

Программирование под Unix: работа с файлами и сокетами

Курсовая по программированию под Unix, состоящая из двух заданий. Исходники к этим заданиям находятся в конце статьи.

Задание 1


Написать программу на языке C++ для компилятора g++ системы UNIX, которая бы поддерживала следующие режимы:
  • создание в домашнем каталоге файла  с именем list и занесение в него нескольких записей следующего содержания: наименование компьютерной техники – строковый тип, количество – целый тип, цена – вещественный тип;
  • обработка файла: добавить в конец файла list первую, третью и  четвертую записи из этого же файла;
  • просмотр содержания скорректированного файла list.
При работе с файлами использовать файловые дескрипторы.

Решение

Для решения поставленной задачи на языке Си была написана программа Unix.cpp. Она имеет следующие режимы работы:
  1. Создание файла.
  2. Добавление записей.
  3. Просмотр содержания скорректированного файла.
Затем программа была откомпилирована командой
g++ unix.cpp -o unix.out

Здесь опция –o определяет имя выходного исполняемого файла.
Запуск программы на выполнение – команда  ./unix.out .

После запуска программы Unix.out был создан файл list, который содержит 10 наименований компьютерных комплектующих:

Программирование под Unix: работа с файлами и сокетами

Затем, при выборе пункта 2, программа выполняет добавление в конец файла list первой, третьей и  четвертой записи из этого же файла.
Для просмотра полученного файла list выбираем пункт 3:

Программирование под Unix: работа с файлами и сокетами

Задание 2


Написать клиентскую и серверную программы для обмена информацией через сокеты. При этом клиентская  и серверная программы должны быть установлены на разных компьютерах и выполнять следующие действия:
  • клиент передает на сервер последовательность измеренных величин;
  • сервер возвращает клиенту среднее значение измеренных величин;
Решение

Для решения поставленной задачи на языке Си были написаны программа-сервер server.cpp и программа-клиент clnt.cpp.

После компиляции серверной и клиентской программ командами:
  • g++ server.cpp -o server.out
  • g++ clnt.cpp -o clnt.out

запускаем серверную программу в фоновом режиме:
./server.out 1149 komut(имя компьютера) &

Затем запускаем клиентскую программу
./clnt.out 1149 komut

которая через сокет соединяется с сервером и отправляет на сервер последовательность измеренных величин (используются числа типа float). После чего сервер вычисляет среднее значение измеренных величин и отправляет полученный результат клиенту. Результат выводится клиентской программой на экран:

Программирование под Unix: работа с файлами и сокетами

Скачать программу для первого задания, а также листинги клиентского и серверного приложений для второго задания вы можете, нажав на эту кнопку:

.

Комментариев нет:

Отправить комментарий