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

Сеть и очередь структур - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Получение времени года по введенному пользователем месяцу http://www.cyberforum.ru/cpp-beginners/thread163203.html
Решить с помощью оператора Case. Написать программу, которая запрашивает у пользователя номер месяца и выводит соответствующее название времени года. В случае, если пользователь укажет недопустимое...
C++ Динамической вектор Створить параметризований тип, динамической вектор.Реализировать функциї: додаванние и удаление елементов, поиск максимального за сер. оценками, сортировка за фамилиеи. ===================== Клас... http://www.cyberforum.ru/cpp-beginners/thread163197.html
C++ Как получить левую часть строки?
С попощю такого куска кода я получу результат: erty , тоесть правая часть строки qwerty, а как мне получить левую часть строки например qwer? Спасибо! void main() { char buf="qwerty"; ...
От значений элементов каждой строки двумерного массива вычесть значение минимального элемента этой строки C++
От значений элементов каждой строки двумерного массива вычесть значение минимального элемента этой строки.
C++ Оригинальная идея для курсовой http://www.cyberforum.ru/cpp-beginners/thread163135.html
Прошу помочь подсказать оригинальную идею для проекта. Огромную важность играет, чтобы проект в дальнейшем смог распостраняться бесплатно и смог помочь людям или организациям. Данный проет будет...
C++ Общий делитель для двух натуральных чисел найти наименьший общий делитель для двух натуральных чисел подробнее

Показать сообщение отдельно
Tilk
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 79

Сеть и очередь структур - C++

03.09.2010, 03:07. Просмотров 483. Ответов 3
Метки (Все метки)

Всем привет.

Пишу клиент-серверное приложение, в качестве пакета данных у меня 4 int числа, в виде структуры.

C++
1
2
3
4
struct message
{
    int arg[4];
};
Клиентская программа параллельным потоком принимает данные от сервера, каждая "порция" данных это одна структура message.

Получив данные от сервера и преобразовав их в int числа я делаю из них массив и ставлю в очередь.
C++
1
2
3
4
5
6
7
8
9
10
ProcessMessage(int arg0, int arg1, int arg2, int arg3)
{
    message newmessage;
    newmessage.arg[0] = arg0;
    newmessage.arg[1] = arg1;
    newmessage.arg[2] = arg2;
    newmessage.arg[3] = arg3;
 
    commands.push(newmessage);
}
Где commands - это очередь сообщений. Объявлена так:
C++
1
queue<message> commands;
А дальше я делаю вот такую вещь:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Gameplay::ProcessMessages()
{
    while (!Net.commands.empty())
    {
        message rmessage;
        rmessage = Net.commands.front();
        if(rmessage.arg[0] == 0 && rmessage.arg[1] == 2)
        {
            Player.SetTarget(rmessage.arg[2], rmessage.arg[3]);
        }
        Net.commands.pop();
        rmessage.arg;
    }
}
Gameplay - мой корневой класс, внутри которого я все объявляю.
Net - класс для работы с сетью, очередь commands явзяется членом этого класса.
Player::SetTarget - это метод для перемещения персонажа (эта команда должна выплняться с данными полученными от сервера)

Собственно проблема в том, что данные, приходящие в метод Player::SetTarget не те. Единственное что знаю наверняка, так это то, что в функцию ProcessMessage от сервера поступают корректтные аргументы. А уже на стороне клиента я делаю с ними что-то не то.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru