GET всё нормально, а вот с POST ответ получить не могу. Что делаю не так?
| Код | #include <iostream> #include <cstdlib> #include <arpa/inet.h>
using namespace std;
int sendall(int s, char *buf, int len, int flags) { int total = 0; int n;
while(total < len) { n = send(s, buf+total, len-total, flags); if(n == -1) { break; } total += n; }
return (n==-1 ? -1 : total); }
int recvall(int s, char *buf, int len, int flags) { int total = 0; int n;
while(total < len) { n = recv(s, buf+total, len-total, flags); if(n == -1) { break; } total += n; }
return (n==-1 ? -1 : total); } int main() { char message[] = "POST /index.php HTTP/1.1\r\nHost: forums.dota-allstars.com \r\nUser-Agent: Opera 7.50\r\nConnection: keep-alive\r\nReferer: http://yandex.ru/ \r\n\r\n"; char buf[100000];
int my_sock; struct sockaddr_in addr;
my_sock = socket ( AF_INET, SOCK_STREAM, 0 ); if ( my_sock < 0 ) { perror ( "socket" ); exit ( 1 ); }
addr.sin_family = AF_INET; addr.sin_port = htons ( 80 ); addr.sin_addr.s_addr = inet_addr( "67.227.17.102" ); if ( connect ( my_sock, ( struct sockaddr * ) &addr, sizeof ( addr ) ) < 0 ) { perror ( "connect" ); exit ( 2 ); }
sendall ( my_sock, message, sizeof ( message ), 0 );
recvall ( my_sock, buf, sizeof ( buf ), 0 );
cout << buf << endl; close ( my_sock );
return 0; }
|
|