Was genau ist denn deine Frage? Also zumindest in der zweiten Funktion sieht man doch recht genau, wie das Paket erstellt wird:
Delphi-Quellcode:
procedure snoopSendTCPBlock(Pcap: PPcap;
MyMac: PMACADDR;
ETHHdr: PETH_HDR;
IPHdr: PIP_HDR;
TCPHdr: PTCP_HDR);
Die Parameter werden ganz normal im Funktionskopf übergeben und dann in der Funktion intern auf die jeweiligen MyXXX Variablen übertragen:
Delphi-Quellcode:
MyETHHdr^.Destination := [b]ETHHdr[/b]^.Destination;
MyETHHdr^.Source := MyMac^;
MyETHHdr^.Protocol := [b]ETHHdr[/b]^.Protocol;
MyIPHdr^.VerLen := [b]IPHdr[/b]^.VerLen;
MyIPHdr^.Service := [b]IPHdr[/b]^.Service;
// ..
Die Funktion snoopSendPacket bzw. pcap_sendpacket sendet einfach das Paket. Ich vermute mal, dass du beim Verschicken eines UDP Pakets das Paketframe mit
IP, etc. am Anfang des Buffers hinzufügen musst. Eigentlich bin ich mir da ziemlich sicher, weil es beim
TCP Beispiel genauso ist.