![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
daff |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.3.2008 Репутация: нет Всего: нет |
Доброго времени суток!!!
Необходимо написать снифер пакетов и далее анализатор - пакеты у меня ловятся и из них вычленяется заголовок ip, а проблемма состоит в том , что я не могу извлечь непосредственно данные!
пытаюсь достать данные следующим образом - &btBuffer[sizeof(IPHeader) * 2]) - для UDP пакетов что-то вроде доста>тся, а вот для TCP ничего нет!!!! Это сообщение отредактировал(а) daff - 17.5.2009, 00:41 |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 6 Всего: 207 |
во-первых, все структуры должны быть упакованными
для TCP
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
daff |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 25.3.2008 Репутация: нет Всего: нет |
А для чего требуется упаковка?
И как после упаковки достать данные? Это сообщение отредактировал(а) daff - 17.5.2009, 20:21 |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 6 Всего: 207 |
чтобы избежать проблемы увеличения размера структуры из-за выравнивания кроме того, вместо int, short и т. д нужно использовать фиксированные типы int16, int32 и т. д точно так же кроссплатформенный пример упаковки
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
REZiaMIX |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
Значит так , в хеадере есть поле - длина пакета. Сами данные идут после хеадера. Т.е. смысл таков:
(думаю суть понятна) Соответственно структура должна быть с правильным выравниванием. Иногда надо не забывать об обратном порядке байт =) Это сообщение отредактировал(а) REZiaMIX - 21.5.2009, 10:27 -------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |