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

Связь по TCP - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Столкновение объектов в играх http://www.cyberforum.ru/cpp-beginners/thread45326.html
Кто что подскажет/посоветует_почитать по поводу физики в играх, в частности столкновения объектов. (интересует само решение задач, связанных со столкновением объектов, как расчитать силу удара,...
C++ хто зможе розвязать Определить сумму первых К положытельных элементов массива А=(2.8,3.5,-2.1,4.6,8.1,6.2,9.5,1.1) при К=5 и сформулювать из них масив С. http://www.cyberforum.ru/cpp-beginners/thread45284.html
C++ Что не правильно в этой программе?
Здравствуйте все! Познаний в с++ мало, чтаю, пробую учить. В одной из книг упражнение - найти что не так, подскажите. Спасибо всем заранее. Текст ниже. #include <iostream> using namespace std;...
[C/C++] "Segmentation fault" при попытке передачи параметра командной строки. C++
Прога вылетает при попытке передачи параметра через командную строку.Такой код: #include <iostream> #include <cstring> #include "driver.h" using std::ifstream; using std::cout; ...
C++ Не совместимость типа http://www.cyberforum.ru/cpp-beginners/thread45248.html
После написания программы программы у меня возникла проблема связанная скорее всего с соответствием типов друг другу, при этом case'2' работает прекрасно, а case'1' не ишет требуемое значение. Прошу...
C++ Строки (символов) Вопрос несколько детский, поэтому как ответ принимаю ссылку на какой-нибудь русскоязыкный сайт с соответствующим содержанием или на Google.ru с приведенным текстом запроса. Итак, есть три переменные... подробнее

Показать сообщение отдельно
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
01.08.2009, 05:51
Цитата Сообщение от amazingsoul
Мне нужен не просто признак, моя задача состоит в том чтобы складывать эти данные в файлик , который будет потом анализироваться.
не, сначала нужно представить это в программе, а потом уже складывать в файл это представление
может даже складывать не придётся, анализ будет возможен прямо в программе

я так, примерно, накидаю
C
1
2
3
4
5
6
#define MAXBUF  1000
 
struct received {
    char buffer[MAXBUF];
    short length;
};
вот ты принимаешь данные в этот буфер, на лине
C
1
2
3
4
5
6
7
8
9
    struct received channel1;
    int n;
 
    n = read(
            socket,
            (void *) channel1.buffer,
            sizeof channel1.buffer
        );
    channel1.length = n;
теперь у тебя есть эта структура, в ней записаны все данные и их длина - можно разбирать

C
1
2
3
4
5
struct commands {
    short one;
    char two[5];
    unsigned long three;
};
C
1
2
3
4
5
6
7
#include <string.h>
 
...
    
    struct commands cmdlist;
 
    memcpy(&cmdlist, channel1.buffer, sizeof cmdlist);
потом можно брать уже каждую команду
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
...
 
    printf(
        "%hd"
        " "
        "%c"
        " "
        "%lu"
        "\n",
        cmdlist.one,
        *cmdlist.two,
        cmdlist.three
    );
Добавлено через 33 минуты 50 секунд
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct x {
        short one;
        char two[5];
        unsigned long three;
    };
    
    char buffer[100] = {
        0x0A, 0x0F,
        0x0B, 0x0B, 0x0C, 0x0C, 0x0A,  0x0A,
        0x1B, 0x0B, 0x0C, 0x0F,
         
        0x0A, 0x0A, 0x0B, 0x0B, 0x0C, 0x0C,
        0x0A, 0x0A, 0x0B, 0x0B, 0x0C, 0x0C,
    };
C
1
2
3
4
5
    struct x cmdlist;
 
    memset(&cmdlist, 0, sizeof cmdlist);
    
    memcpy(&cmdlist, buffer, sizeof cmdlist);
проверил у себя - там отметил, копируется всё до пустой строки, записывает в переменные в обратном порядке (вроде только char'ы идут прямо) и один байт идёт под заполнение
последнее unsigned long из
0x1B, 0x0B, 0x0C, 0x0F
превратится в
0x0F, 0x0C, 0x0B, 0x1B

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