How I can recive response from httpd (for example Apache). Where I can get size response?
My code:
Code:#define BUFFER_SIZE 1024 char message[] = "GET /index.php HTTP/1.1\r\nHOST: example.com\r\n\r\n"; char buf[BUFFER_SIZE]; int sock; struct sockaddr_in addr; char hostname[40] = "example.com"; struct hostent *he; struct in_addr ip_addr; char content[102401]; sock = socket(AF_INET, SOCK_STREAM, 0); if(sock < 0) { perror("socket"); exit(1); } addr.sin_family = AF_INET; addr.sin_port = htons(80); he = gethostbyname(hostname); if(he==NULL) { printf("unknown host: %s \n ", hostname); exit(1); } bcopy(he->h_addr, (char *) &ip_addr, sizeof(ip_addr)); addr.sin_addr.s_addr = inet_addr(inet_ntoa(ip_addr)); if(connect(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0) { perror("connect"); exit(2); } send(sock,message,strlen(message),0); int key = 0; while(key < 100) { recv(sock,buf,BUFFER_SIZE,0); strcat(content,buf); key++; } printf("%s",content);
I have problem with this loop:
- unclean when stoping reciving data.Code:int key = 0; while(key < 100) { recv(sock,buf,BUFFER_SIZE,0); strcat(content,buf); key++; }
And how I can send response to httpd and say him "Successful recive data"??
From httpd I recive HTTP header like this:
And if I need recive image (binary file), how I can remove from response HTTP header?Code:HTTP/1.1 200 OK Date: Sat, 12 Mar 2011 17:31:45 GMT Server: Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.16 X-Powered-By: PHP/5.2.16 Set-Cookie: PHPSESSID=79c26a99d9050d6d5345f397f949f81f; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Connection: close Transfer-Encoding: chunked Content-Type: text/html 11f6e <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">



LinkBack URL
About LinkBacks


