Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  9 4563
Jeg skal "overvåke" ett system. Telle opp og tidsstemple siste pakke av visse typer
fra forskjellige avsendrere. IP addressene kan i prinsippet være alle lovlige IPV4
host addresser.

Antall avsendrere (i mitt system) blir typisk maks 1000 men skulle gjerne håndtert oppmot 10000
avsendere.

Det jeg har lett etter er en god måte å ha en tabell med addresser som skal bygges opp etthvet som
jeg mottar pakker fra forskjellige avsendere. Slå opp i denne for hver eneste mottatte pakke i "sann-
tid".

Trodde kanskje att dette var en litt "standard" problemstilling men har ikke funnet noen gode
implentasjoner.

Noen som har ett bra forslag/lenke? Skal lages i *C*.
Bruk en lokal sqlite-database e.l.?
10000 er så godt som ingenting, trenger ikke lage indekser engang.

Hvis du utdyper litt er det sikkert noen som vil skrive et forslag, hvis det ikke er voldsomme mengder logikk blir det ikke mange kodelinjene.
Trådstarter
Sqlite... høres ut som En god ide. Hadde egntlig tenkt å ha alt i minne, mendet jo ikke noe krav.
Skal se pådet. Må lese meg opp litt der.
Programmet mitt er i win32, mingw.

Takker
Sitat av Goophy Vis innlegg
Bruk en lokal sqlite-database e.l.?
10000 er så godt som ingenting, trenger ikke lage indekser engang.

Hvis du utdyper litt er det sikkert noen som vil skrive et forslag, hvis det ikke er voldsomme mengder logikk blir det ikke mange kodelinjene.
Vis hele sitatet...
Vill tørre å påstå at i første normalform skal alle rader ha en unik primærnøkkel Kanskje greit å legge det til, slik at du kan bruke det til noe mer nyttig senere.

Sitat av Tenag Vis innlegg
Sqlite... høres ut som En god ide. Hadde egntlig tenkt å ha alt i minne, mendet jo ikke noe krav.
Skal se pådet. Må lese meg opp litt der.
Programmet mitt er i win32, mingw.

Takker
Vis hele sitatet...
Å ha det i minne, er jo litt ressurskrevende.. Bedre å kunne slå opp og hente data når du trenger den, også la den ligge lagret når du ikke trenger den.
Sist endret av cmoen11; 25. april 2017 kl. 00:21.
Hvis du ikke trenger persistent lagring kan du jo bare lagre det i et array.
Holde av noen MB minne er ikke et stort problem.
Trådstarter
Hvis du ikke trenger persistent lagring kan du jo bare lagre det i et array.
Holde av noen MB minne er ikke et stort problem.
Vis hele sitatet...
Det var/er min opprinnelige ide. Trenger ikke lagre data.
Det var en en god måte å organisere enn tabbell på for raskt opslag jeg var på jakt etter.
Tabbellen skal bygges opp ethvert som pakker mottaes.
Alle sender pakker hele tiden. Noen sender flere pakker i sekundet noen ett par i minuttet.
Overvåkning skal skje over en times tid til ett døgn.
Hvordan vil du at datastrukturen din skal se ut? (Hva skal du egentlig lagre?)
Trådstarter
Hver host kan sende 15 forskjellige meldingstyper.
For hver meldingstype for hver host ønsker å telle pakker å rate for hver pakke.
Da mener jeg det skulle holde å klokke første og siste pakke og å telle.

Viser dette i ett listview og skriver ut en rapport ved behov.

Btw meldingene er multixcast til en port som jeglytter på.
Nøstede maps burde jo funke greit til det.
Typ

rate[#ip#][#meldingstype#] = #rate#;
pakker[#ip#][#meldingstype#] = #antall#;
Hva med å gi et konkret eksempel?
  • Hvilken protokoll er det?
  • Hvilken verdi i protokollen er det du ser etter (ref: 15 forskjellige meldingstyper)
  • Hvilken transport lag protokoll er det du multicaster på?
  • Når du snakker om å rate for hver pakke, mener du da antall pakker pr tidsenhet?