Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Сборка и разборка пакета в WinPcap


Автор: mrin 25.1.2007, 22:59
Вобщем посмотрел я примеры компонентов с WinPcap, (Magno....)
Долго листая код юнитов, я так и не понял блин как там идет разборка пакета...
Т.е. вот я нашел саму структуру пакета при запросе на его получение функцией: PacketReceivePacket(p.adapter,p.packet,TRUE), где P:Ppcap;
Код

  Ppacket = ^Tpacket;
  Tpacket = packed record           // Changed Jan.1 2002. Thanks to Deheng Xu
    hevent             :Thandle;
    OverLapped         :TOVERLAPPED;
    Buffer             :Pointer;
   //Next               :Pointer;     // also commented out in "packet32.h"
    Length             :Longword;
    ulBytesReceived    :LongWord;
    bIoComplete        :Boolean;
  end;


Тут походу в buffer лежит весь пакет, т.е. и маки и т.д. Посмотрел по функции PacketReceivePacket как делается структуризация пакета:
Код

       [BPF_HDR]
                 [ DATA  ]
                 [PADDING]
                 [BPF_HDR]
                 [ DATA  ]
                 [PADDING]

Не понял вобщем... В итоге мы получаем там тип TPacketInfo содержащий уже разбитые как нужно данные...

Можете мне объяснить как там он разбирается ?
==============
Вобщем попытался после получения пакеты сразу же его отправить smile
Код

PacketReceivePacket(p.adapter,p.packet,TRUE)
PacketSendPacket(p.adapter,p.packet,TRUE)


А нифига... функция возвратила -1.
Т.е. я так понял, необходимо при принятии пакета распаковать его, изменить там SOURCE данные, запоказвать и отправить его, только в этом случае отправиться ??

Вобщем очень большая просьба, объясните как это там происходит...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)