30. marts 2003 - 21:17Der er
15 kommentarer og 1 løsning
Datastruktur i chat
Øv hvor er det træls at være newbie - der er så mange spørgsmål.
Jeg roder lidt med forberedelserne til en chatserver og skal finde ud af hvordan jeg kæder oplysninger om en bruger sammen med den filedescripter som retuneres af accept();
Jeg regner med en struct som indeholder filedescripter, nick til navn samt en mode der fortæller om nick er modtaget samt buffer.
// struct struct Deltager_info { int fd_socket; string nick; int mode; string buffer; };
Men hvordan skal jeg gemme dem. Jeg vil tro i et array eller i en vector. Men det skal jo også gerne være muligt at hente nick ud fra fd_socket eller skrive til buffer når jeg kender fd_socket.
så laver du et array af dem af samme størrelse som max antal og så holder du det array sorteret og så kan du lave en binær søgning på nick og hurtigt finde data.
Det sorterede array kan så forbedres ved at lave det som træ eller som hash tabel.
Der er mere avancered data-strukturer end array af struct.
Men du kan sagtens få array af struct til at virke, enten tilføjer du bare et felt inuse eller så laver du en konvention fd_socker=-1 betyder at pladsen er ledig.
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.