Gå til innhold

"Sommerprosjekt" - Webserver


Anbefalte innlegg

Videoannonse
Annonse

ikke kommenter hver linje i koden din. Det er noe man kanskje gjør i assembly - men ikke i andre kodespråk. Kodne din burde være lett forstålig og man burde bruke minst mulig kommentarer. Kommentarer er en nødvendig onde, som av og til må brukes for å gjøre opp for mangelen på egenskaper til å skrive enkel forstålig kode; og burde brukes minst mulig. (men MÅ brukes de gangene det er nødvendig).

Lenke til kommentar

Interessant. Driver med noe lignende selv i Java, hvor jeg skal utvikle en device management løsning så det er nødvendig å ha konstant kontakt mellom systemet som kontrollerer enhetene, og administrasjonspanelet som skal være webbasert. Derfor så skrives disse i samme prosjekt, side om side, og er 100% dynamisk. Du har fått til en god start vil jeg si, selv om navnet "cHandler" og "cSocket" ikke er spesielt gode imo, jeg ville heller brukt "WebserverHandler" og "Bootstrap" eller lignende navn. Deretter laget en Properties/Settings/?? lignende klasse som tar seg av innstillinger og innlasting av disse sånn at dette ble borte fra Webserver.cpp :)

 

En djevel du kan se frem til er POST data og filopplasting. Ønsker deg lykke til med dette, da det var tortur å ordne med i Java enda jeg hadde biblioteker som ordnet det meste (Netty.io og Apache Commons) så det blir nok enda mer morsomt i C++.

 

Siden du tenker å parse html kode, så blir nok livet ditt litt (kanskje?) enklere enn mitt på det feltet, min dynamisk genererte kode var skrevet i Java, så jeg måtte filtrere om dataen enten skulle gå til Java, eller laste inn filer. Fun stuffs....men jeg fikk det til!

 

Ønsker deg lykke til, jeg følger med på prosjektet ivertfall :)

Endret av TheRealL
Lenke til kommentar

Post-data og filopplastning er da ikke så veldig vanskelig? Du leser headeren for å se hva slaks type fil det er, og hvor stor den er. Og så bare leser du det hele fra stremen og lagrer det i f.eks. en fil eller i en database. Men det spørs også litt hva man definerer at en post-request skal gjøre. Det å parse bodyen på en post-request sendt via en webform er heller ikke veldig vanskelig.

Lenke til kommentar

Post-data og filopplastning er da ikke så veldig vanskelig? Du leser headeren for å se hva slaks type fil det er, og hvor stor den er. Og så bare leser du det hele fra stremen og lagrer det i f.eks. en fil eller i en database. Men det spørs også litt hva man definerer at en post-request skal gjøre. Det å parse bodyen på en post-request sendt via en webform er heller ikke veldig vanskelig.

 

Tja, skal inrømme at jeg ikke gjorde det på et lavere nivå, kan hende det er så enkelt. Med systemet jeg brukte så ble dataen delt opp i chunks, disse måtte så samles opp før jeg kalte på den dynamiske funksjonen, sånn at dataen var fullstendig tilgjenglig for funksjonen.

Lenke til kommentar
  • 1 måned senere...

Hva skjer hvis siden er større enn maks pakke størrelse? (~8KiB) (tenker på cSocket::txData ikke sjekker hvor mye som ble sendt)

 

Evt hvis mottatt data er større enn buffer (1024b)

 

Har ikke lest veldig mye gjennom, men høres jo ut som ett gøy prosjekt dette her! :)

Lenke til kommentar

Alt arbeid med prosjektet har ligget stille en stund nå. Mye jobb og alt for lite fri, hehe. De tingene med maksstørrelser som du nevnte tripper har jeg ikke sett noe på. HTTP har jo egentlig ikke noe maksstørrelse, men forskjellige browsere og servere setter en grense (varrierer fra 2 til 48KB eller noe sånt). Men der kan det jo enkelt løses ved å 1) lese seg opp på standarder og meningen med det, 2) sette opp en størrelse sjekk opp mot kravet / maks, og så håndtere avvik / feil deretter. Det med mottaksbufferen går vel under noe av det samma. Har sette litt at det er noen maks verdier rundt dette også, men igjen som varrierer.

 

Får velte til ferien kommer, så grave meg ned i litt standarder (hvis det ikke dukker opp et mer spennende prosjekt, hehe).

 

Takk for at du påpekte de tingene, hadde ikke tenkt noe særlig over det, skal få notert det ned i den uendelige lange listen min over ting jeg må få gjort xD

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...