This repository has been archived by the owner on Sep 9, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 34
Liubchenkova Anna 203 lab3s #53
Closed
Anna-Lyubchenkova
wants to merge
29
commits into
insysnw-archive:master
from
Anna-Lyubchenkova:lab3s
Closed
Liubchenkova Anna 203 lab3s #53
Anna-Lyubchenkova
wants to merge
29
commits into
insysnw-archive:master
from
Anna-Lyubchenkova:lab3s
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
ps. хорошо бы обращаться к ресурсам по ID, а не по имени |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Lab 3s Система поиска/публикации новостей
Linux terminal:
Задание:
Новости сгруппированы по темам. Каждая новость имеет уникальный идентификатор, название и текст новости.
Основные возможности.
Серверное приложение должно реализовывать следующие функции:
системы поиска/публикации новостей
поиска/публикации новостей через механизм нитей
по теме, текста новости, добавление новости по теме
Основные возможности:
Структура описывающая новость
| typedef struct{
| int id; //id
| char *name; // Имя новости
| char *textNews; // текст новости
| char *themes; // К какой теме принадлежит новость
|
| } news;
|
| //Массив новостей
| news massNews[maxNews];
Приведенная выше структура описывает саму новость, каждая новость имеет свой индекс.
Так же все новости хранятся в массиве новостей из которого потом отправляются клиенту. Имеется также массив тем, который представляет собой динамический массив строк, и когда клиент обращается к серверу с запросом на список тем или новостей, сервер работает конкретно с этими структурами.
Так же после каждого запроса клиента сервер ведет лог действий клиента, что позволяет полностью проследить что делал каждый подключенный клиент.
Формат пакетов ответа сервера клиенту:
Флаг = 0x00000081 – вывод тем
CountTheme - int(4 байта) Количество тем
Дальше в пакет идут n сегментов: Длина темы и имя темы
Lengtheme - int(4 байта)
theme - массив однобайтных символов
2.
Флаг = 0x00000082 – вывод списка новостей
CountNews- int (4 байта) Количество новостей
Дальше в пакет идут n сегментов: ID, длина новости и заголовок.
ID - int (4 байта)
LengthNews - int (4 байта)
nameNews - массив однобайтных символов
Флаг = 0x00000083 - вывод новости
Длина имени новости
Заголовок новости
Длина текста
Сам текст
Длина темы
Сама тема
LengthName, LengthText, LengthTheme - int (4 байта)
newsName, newsText, Theme - массив однобайтных символов
Флаг = 0x00000084 - успешное добавление данных
Flag = 0x000000C5 - ошибка, новость не найдена