11. oktober 2007 - 00:43Der er
8 kommentarer og 1 løsning
recv() hænger
Jeg har sat mit program til at lytte på en port og tage imod indkommende forbindelser. Når jeg prøver at læse fra den åbnede forbindelse, bliver den sidste recv() aldrig færdig, da browseren ikke sender mere data.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Den skal afslutte, når client afslutter forbindelsen.
Men hvis du gerne vil process noget når du har modtaget \r\n\r\n, så skal du lave noget a la:
int lenn,ix; char buf[10000]; ix = 0; while((len = recv(sd, buf + ix, sizeof(buf) - ix, 0)) > 0) { ix += len; if(strnstr(buf, "\r\n\r\n", ix) != NULL) break; } buf[ix] = '\0'; // process første del af buf - husk at gem sidste del af buf
int lenn,ix; char buf[10000]; ix = 0; while((len = recv(sd, buf + ix, sizeof(buf) - ix, 0)) > 0) { ix += len; buf[ix] = '\0'; if(strstr(buf, "\r\n\r\n") != NULL) break; } // process første del af buf - husk at gem sidste del af buf
Synes godt om
Slettet bruger
15. oktober 2007 - 10:18#6
Også fejl:
error: no matching function for call to âstrstr(char [10000], const char [5], int&)â /usr/include/string.h:195: note: candidates are: char* strstr(const char*, const char*) /usr/include/c++/4.2/cstring:125: note: char* std::strstr(char*, const char*)
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.