shelter » 19.05.2016 00:48:31
Установить драйвер WinPCap. Для Delphi есть заголовочные файлы. Через него можно слать и принимать Ethernet пакеты.
procedure TSendingThread.ExecuteInternal;
const BUF_SIZE = 2048;
var buf: PByteArray;
pkt: Ppacket;
len: word;
seq: byte;
nowEmpty: boolean;
begin
seq := 0;
buf := GetMemory(BUF_SIZE);
try
Move(Eth.FEthernet.snd.mac, buf^[0], 6);
Move(Eth.FEthernet.rcv.mac, buf^[6], 6);
buf^[12] := hi(Eth.FEthernet.snd.typ);
buf^[13] := lo(Eth.FEthernet.snd.typ);
pkt := PacketAllocatePacket;
if pkt = nil then PCapCheck(false, 'PacketAllocatePacket');
try
...
PacketInitPacket(pkt, buf, 17 + len);
PCapCheck(PacketSendPacket(Eth.FEthernet.Adapter, pkt, false), 'PacketSendPacket');
end;
finally
PacketFreePacket(pkt);
end;
finally
FreeMem(buf);
end;
end;