Avatar billede klejner Nybegynder
04. januar 2002 - 23:14 Der er 3 kommentarer og
1 løsning

HTTP Server

Hej! Vi er to unge mennesker, som er i gang med at udvikle en HTTP server i C++.
Vi er stødt ind i det problem at klienten (computeren hvor der surfes) kun modtager de første 1024 bytes (1K) af HTML filen. Det er i hvert fald kun de 1024 første tegn som vises i browseren.


Når vi sender data til klienten gør vi følgende:

    Sendf(cHeader,\"HTTP/1.1 200 OK\\r\\n\");
    Sendf(cHeader,\"Server: %s\\r\\n\",SERVDESC);
    Sendf(cHeader,\"Content-Type: %s\\r\\n\",pcContentType);
    Sendf(cHeader,\"Content-Length: %d\\r\\n\",nBytes);
    Sendf(cHeader,\"Connection: close\\r\\n\");
    Sendf(cHeader,\"\\r\\n\");

...hvorefter vi sender selve HTML-filen i et enkelt hug.

Vi bruger Windows 98, med WinSock2.

PS: Det hjælper ikke at dele HTML\'en op i fragmenter af 1024 bytes.

Hvad gør vi forkert? Hvad er der galt??
Avatar billede henrik_ffc Nybegynder
04. januar 2002 - 23:21 #1
Jeg tror ikke I skal have \\r med.
Når I alligevel bruger \"connection: close\" kan I ligeså godt også bruge \"HTTP/1.0\"
Avatar billede henrik_ffc Nybegynder
04. januar 2002 - 23:22 #2
Prøv evt: Sendf(cHeader,\"Connection: close%c\",10);
istedet for \\r\\n alle steder...
Avatar billede - Nybegynder
05. januar 2002 - 08:08 #3
havde selv det problem på linux. Det blev løst ved at læse socket 2 gange inden denne lukkes.
Avatar billede klejner Nybegynder
10. juni 2003 - 18:08 #4
...kun kommentarer og ingen svar... Desuden er projektet out of date, så der uddeles keine point.

Men ellers mange tak for hjælpen :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester