Вернуться   CoderX :: Forums > Основные форумы > Полезности
Войти через OpenID

Полезности Исключительно для полезных тем из других разделов.
Темы тут не создаются!
Темы сюда перемещаются из других разделов, и на их старых местах остаются постоянные перенаправления.

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 20.01.2010, 16:08   #1
Новичок
 
Регистрация: 14.08.2009
Сообщений: 14
Сказал Спасибо: 7
Имеет 3 спасибок в 2 сообщенях
Cooper85 пока неопределено
По умолчанию

Цитата:
Сообщение от xkor
NetworkPacket: Pointer
А кто-то может поделится примерной структурой этого дела ?
А-ля ПХ на мой взгляд не подходит.
Цитата:
Сообщение от GoldFinch
Структура NetworkPacket содержит отдельно ID пакета, размер данных пакета (без ID), данные пакета (без ID).
Это читал.

Добавлено через 10 часов 0 минут
DWORD - id пакета (id+sub id пакета), незанятые байты - мусор
DWORD - длина данных пакета без id и без длины

Последний раз редактировалось Cooper85, 20.01.2010 в 16:12. Причина: Добавлено сообщение
Cooper85 вне форума   Ответить с цитированием
Старый 21.01.2010, 00:14   #2
Местный
 
Регистрация: 18.02.2008
Сообщений: 141
Сказал Спасибо: 16
Имеет 66 спасибок в 30 сообщенях
ratvier
По умолчанию

Цитата:
Сообщение от Cooper85 Посмотреть сообщение
DWORD - id пакета (id+sub id пакета), незанятые байты - мусор
по сути - мусор, но всё же это выравнивание

Цитата:
Сообщение от Cooper85 Посмотреть сообщение
DWORD - длина данных пакета без id и без длины
последний раз, когда я там ковырялся, под длину выделялся WORD, а оставшиеся 2 байта - выравниевание O_o

а после этого шёл указатель на "тело" пакета, как-то так:
Код:
#pragma pack(push,1)
struct NetworkPacket
{
    char ID;
    char u1;
    char u2;
    char u3;
    short length;
    char u4;
    char u5;
    char* data;
};
#pragma pack(pop)
_______________________________________________
in pivo veritas %)) и пофиг что не правда %))))
ratvier вне форума   Ответить с цитированием
За это сообщение ratvier нажился спасибкой от:
Старый 21.01.2010, 03:51   #3
Новичок
 
Регистрация: 14.08.2009
Сообщений: 14
Сказал Спасибо: 7
Имеет 3 спасибок в 2 сообщенях
Cooper85 пока неопределено
По умолчанию

Цитата:
Сообщение от ratvier
Код:
struct NetworkPacket
{
    char ID;
    char u1; //subid
    char u2;
    char u3;
    short length;
    char u4; //=0
    char u5; //=0
    char* data;
};
Как-то так у меня получается...
Офф, здешний тестовый сервер.
Cooper85 вне форума   Ответить с цитированием
Старый 21.01.2010, 04:38   #4
Новичок
 
Регистрация: 21.01.2010
Сообщений: 3
Сказал Спасибо: 0
Имеет 6 спасибок в 2 сообщенях
brat пока неопределено
По умолчанию

Цитата:
Сообщение от Cooper85 Посмотреть сообщение
NetworkPacket: Pointer
А кто-то может поделится примерной структурой этого дела ?
Код:
PNetworkPacket = ^TNetworkPacket;
TNetworkPacket = packed record
    id: byte;  // ID пакета
    res: byte; // тут ничего нужного нет
    id2: Smallint; // второй ID если есть
    size: Cardinal; // размер данных
    data: Pointer; // указатель на данные
  end;

Последний раз редактировалось brat, 21.01.2010 в 04:43.
brat вне форума   Ответить с цитированием
За это сообщение brat нажился 4 спасибками от:
Ответ

  CoderX :: Forums > Основные форумы > Полезности



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 01:22.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!