Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
serjeka
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 81
#1

Программа должна моделировать взаимодействие серверной части и некоторого множества клиентских частей - C++

22.06.2012, 16:46. Просмотров 919. Ответов 0
Метки нет (Все метки)

Описание задачи

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

Добавлено через 14 часов 47 минут
помоите пожалуйста реализовать данный проект. я не имел опыта написания подобных проектов.

Добавлено через 1 час 37 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <functional>
#include <vector>
#include "queue.h"
#include "Except.h"
#include <fstream>
#include <iostream>
#include "ClientServer.h"
#include <boost/thread/thread.hpp>
#include <boost/thread/condition_variable.hpp>
#include <Windows.h>
using namespace std;
typedef struct tagTDATA {
    int cPriority;     //приоритет запроса 0 – 255 (0 – наивысший приоритет)
    DWORD dwTicks;     //время формирования запроса в системных тиках
    DWORD dwClientId;  //уникальный идентификатор клиента
    char *Data;        //абстрактные данные
} TDATA, *PTDATA;
DWORD startTickCount = GetTickCount();
PTDATA create_request()
{
    PTDATA ptr = new tagTDATA();
    char *chPt = "Client";
    ptr->cPriority =rand() % 255 - 1;
    ptr->dwTicks = GetTickCount() - startTickCount;
    ptr->dwClientId = 7;
    ptr->Data = chPt;
    return ptr;
}
void process(PTDATA req)
{
    cout << "Priority: " << req->cPriority  << endl
        << "System Tick: " << req->dwTicks << endl
        << "Client ID: " << req->dwClientId << endl
         << "Data: " << req->Data << endl << endl;
}
class request_queue 
{
public:
    void enqueue(PTDATA req)
    {
        bool notify = false;
        {
            boost::unique_lock<boost::mutex> lock (mtx);
            notify = queue.empty(); 
            queue.push(req); 
        }      
        if (notify)
            cv.notify_one();
    }
    PTDATA dequeue()
    {
        boost::unique_lock<boost::mutex> lock (mtx);
        while (queue.empty())
            cv.wait(lock);
        PTDATA req = queue.top();
        queue.pop();
        return req;
    }
private:
    boost::mutex mtx;
    boost::condition_variable cv;
    priority_queue<PTDATA, vector<PTDATA>, greater<PTDATA> > queue;
};
request_queue PQ;
void client_thread()
{
    int n = 10;
    while (n)
    {
        n--;
        PTDATA req = create_request();
        PQ.enqueue(req);
    }
}
void server_thread()
{
    while (PTDATA req = PQ.dequeue())
    {
        process(req);
    }
}
int main()
{
    boost::thread thr1(client_thread);
    boost::thread thr2(server_thread);
    thr1.join();
    thr2.join();
    return 0;
}


что не так. матерится на выделенное...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2012, 16:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа должна моделировать взаимодействие серверной части и некоторого множества клиентских частей (C++):

Программа должна моделировать взаимодействие серверной части и некоторого множества клиентских частей - C++
Описание задачи Необходимо реализовать программу в ввиде одного исполняемого файла под Win32 (console или GUI) с использованием С/С++....

Программа должна брать с некоторого сайта короткую информацию - C++
Просветите, пожалуйста, на тему того, как попадают в интернет. Надо чтобы программа шла в сеть и брала с некоторого сайта короткую...

Пользователь вводит 10 чисел программа должна выдать 2 максимальных(берём от 1 до 10,если выпадает 2 10,то программа должна выдать 2 10,а не 10,9) - C++
#include &lt;iostream&gt; using namespace std; int main () { int number, largest_1, largest_2, counter = 1; cout«&quot;Vvedite 1oe...

Взаимодействие игры в виде SWF и серверной частью. - ActionScript
Добрый день, скажите пож, у меня есть игра гладиатор, как передать данные игре?(сумма пользователя)

Организовать взаимодействие четырех игроков в клиент-серверной игре - C#
Есть клиент, есть сервер. В клиенте есть игра, смысл которой заключается в том, чтобы накопить армию за 5 минут, затем данные...

Добавление серверной части - C# ASP.NET
Второй шаг. Произвольно*выберите *предметную область, в которой можно реализовать отношения*master-detail. (Например, дни недели и задания...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2012, 16:46
Привет! Вот еще темы с ответами:

Разбор серверной и клиентской части - Java EE
помогите с комментариями в jsp по серверной и клиентской части и комментарии исполнения самой программы ее работы что и зачем следует ...

Создание серверной части приложения - C# MVC
Здравствуйте! У меня есть следующая задача: Нужно разработать небольшой сервис в который будет входить база данных, мобильное...

Ищу сайты без серверной части - HTML, CSS
Где можно скачать сайты на HTML+CSS без серверного кода, чтобы потренироваться в JQuery?

Оценить время разработки серверной части - Программирование Android
Доброго времени суток! Сколько времени может занять создания серверной части обычного контентного приложения, для розмещения статтей?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru