Jeg tænker så at jeg kan sætte lave en pointe til adressen på min stream, og tilgå den som en record. men hvordan gør jeg lige det? og hvordan laver jeg et felt i min record der er 192 bytes stor?
-og er det rigtigt når jeg bruger typen longword til en 32 bit værdi?
Efter de første ca. 230 bytes bliver pakkerne forskellige, alt efter de optioner der nu er tilstede i pakken, så den kan jeg ikke komme så let til, eller er der måske een der har en god ide?
-er der nogle der lige kender til en komponent der kan alt det jeg skal bruge når jeg skal implementere en DHCP server der bl.a. kan bruge option 82?
Jyske Bank er rykket ind i Glaskuben på Kalvebod Brygge, et markant byggeri i hjertet af København. Knap 1.000 arbejder her, heraf 200 i IT, med nye rammer for samarbejde, innovation og udvikling.
Noget i den her retning kan bruges til at mappe en record over en klump hukommelse (ikke testet så måske mangler der en ^ eller en @ - roder altid rundt i det):
type TDHCP_Telegram = record OP: Byte; HTYPE: Byte; HLEN: Byte; HOPS: Byte; XID: LongWord; SECS: Word; . . end;
PDHCP_Telegram = ^TDHCP_Telegram;
var Stream: TMemoryStream; DHCP_Telegram: PDHCP_Telegram; begin ... with DHCP_Telegram(Stream.Memory)^ do begin eOP.Text := intToStr(OP); ... end; end;
Longword er fin men cardinal nok bedre.
Hvad skal din komponent kunne?
Selve streamen er ikke en du genererer vel? Hvis det var ville jeg anbefale mine foretrukne Stream-kompagnoner: TReader og TWriter. De er meget meget anvendelige bare man husker at bruge FlushBuffer!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.