Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Взаемодействие серверной и клиентской частей


Автор: Graf_h 6.11.2007, 11:23
Необходимо реализовать программу в ввиде одного исполняемого файла под Win32 (console или GUI) с использованием С/С++. Программа должна моделировать взаимодействие серверной части и некоторого множества клиентских частей (n <= 10). Серверная часть предназначена для обработки некоторых абстрактных транзакций, поступающих от множества клиентов. Серверная и клиентские процедуры должны исполняться в отдельных потоках. Система должна быть однонаправленной, т.е. клиенты отправляют данные и не ждут ответа. Данные, поступающие от клиентов должны помещаться в очередь с учетом их приоритета. Серверная часть должна извлекать данные из очереди и помещать в файл записи о них в текстовом формате. 
Записи в log-файле должны отражать: 
-    время записи в log в системных тиках;
-    идентификатора клиента;
-    приоритет;
-    время формирования запроса в системных тиках.

Не знаю с чего начать! smile 

Автор: Partizan 6.11.2007, 12:56
Graf_h, очевидно, что начать надо с проектирования...если не понятно как, то начать с чтения книг...

Автор: Graf_h 6.11.2007, 13:55
Книжки я читать умею!! Хотелось бы что бы подсказали саму "будову" проги что за чем делать!! Мне задача совсем неясна!

Автор: Alek86 6.11.2007, 14:24
если не знаешь работу с нитями (или потоками), то почитай про нее

а так:
создай класс сервера и класс клиента
клиент будет содержать ссылку на сервер
...
и тп

Если сам додумать не можешь, то уж извини.
как говорят на буржуйских форумах:
"we are not going to do your homework for you"
smile

честно говоря, по мне так условие туповато. что должны передавать клиенты? когда?

Автор: Graf_h 6.11.2007, 15:28
вот и я не понял что от меня хотят!  smile  

Автор: Lazin 6.11.2007, 15:39
Цитата(Graf_h @  6.11.2007,  11:23 Найти цитируемый пост)
Серверная и клиентские процедуры должны исполняться в отдельных потоках. Система должна быть однонаправленной, т.е. клиенты отправляют данные и не ждут ответа. Данные, поступающие от клиентов должны помещаться в очередь с учетом их приоритета. Серверная часть должна извлекать данные из очереди и помещать в файл записи о них в текстовом формате. 

Можно сделать так, 1 поток для сервера, n потоков - для клиентов. Тебе нужно создать класс - очередь, каких-то объектов, например текстовых сообщений. Доступ к объекту нужно синхронизировать для работы со множеством потоков. Далее, клиенты добавляют объекты в очередь, сервер в своем потоке выбирает объекты из очереди и пишет в файл. Получится асинхронная работа клиентов и сервера.
Объекты содержащиеся в очереди очевидно должны иметь аттрибуты:

Цитата(Graf_h @  6.11.2007,  11:23 Найти цитируемый пост)
-    время записи в log в системных тиках;
-    идентификатора клиента;
-    приоритет;
-    время формирования запроса в системных тиках.


Автор: Alek86 6.11.2007, 16:20
Цитата(Graf_h @  6.11.2007,  15:28 Найти цитируемый пост)
вот и я не понял что от меня хотят!


ну мы ж не эти самые, мыслев читать не умеем
думаю, если попросишь "заказчика" уточнить, не умрешь smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)