Witam,
Zadaniem mojego kodu jest pobieranie nagłówka HTTP wysłanego przez przeglądarkę:
dl_odebrane=recv(klient_sockfd, &znak, 1, 0);
while(dl_odebrane>0){
printf("%c", znak);
memset(&znak, '\0', 1);
dl_odebrane=recv(klient_sockfd, &znak, 1, 0);
}
wszystko pobiera się OK, oprócz danych przesłanych POST:
[root@loganek emsiserv_emsiserv1]# ./a.out
POST /tmp.html HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:2.0) Gecko/20100101 Firefox/4.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 10
Co ciekawe, kiedy wyślę drugie zapytanie, dane POST z poprzedniego zapytania są wyswietlane(oczywiście z aktualnego już nie:)):
[root@loganek emsiserv_emsiserv1]# ./a.out
POST /tmp.html HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:2.0) Gecko/20100101 Firefox/4.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 10
sdf=asdsad
POST /tmp.html HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:2.0) Gecko/20100101 Firefox/4.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 10
Ktoś wie, dla czego dane POST wyświetlane są dopiero w następnym odbieraniu danych, a nie w aktualnym?
Z góry dziękuję za pomoc