Курсовик за 2 семестр

В данном задании предлагается на выбор реализовать программу, использующую для работы с сетью BSD-сокеты и реализующую один из популярных интернет протоколов. Примеры допустимых программ:

Допускается написание других программ, но это необходимо предварительно согласовать со мной.

Набор требований/нетребований к реализации:

Предполагается, что разрабатываемую программу условно можно разделить на 3 части:

  1. Некоторая обертка над сокетами/epoll'ом, которая реализует TCP и ничего не знает про протокол вышележащего уровня.
  2. Реализация соответствующего интернет протокола, например HTTP, использующая 1 и ничего не знающая про прикладную логику.
  3. Прикладная логика, использующая 2.

Утверждается, что если программу нельзя будет легко разделить на эти 3 части, то её код это жуткая лапша. Возможно для некоторых программ это не так, надо смотреть на конкретном примере. Но есть шанс, что это так. Поэтому вам предлагается сразу писать программу разделяя её на эти три части: две библиотеки и сама программа.

Интерфейс части 1 может быть произвольным, но вы можете черпать вдохновение глядя на существующие библиотеки, например QTcpServer[5], QTcpSocket[6]. Аналогично для части 2: QNetworkAccessManager[7].

Сроки

Ссылки

  1. ^ man 4 epoll
  2. ^ man 7 epoll
  3. ^ I/O Completion Ports
  4. ^ man 2 kqueue
  5. ^ QTcpServer Class
  6. ^ QTcpSocket Class
  7. ^ QNetworkAccessManager Class

Valid XHTML 1.0 Strict