Показать сообщение отдельно

  #20  
Старый 07.07.2007, 09:20
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
С нами: 10721066

Репутация: 4360


По умолчанию

Блин, стоит только отойти, уже флейма разведут на Н страниц. Таких тем в инете полно! Исходников тоже!
На крайняк если ТС ничего не найдет (вероятность менее 1%), то я потом выложу в паблик Antichat Web Tool, где скачивание страницы реализовано через чистые сокеты.

В двух словах:

Код:
SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
SOCKADDR_IN sa = {0};
sa.sin_family = AF_INET;
HOSTENT* phe = gethostbyname("google.ru");
*(DWORD*)&sa.sin_addr.s_addr = *(DWORD*)phe->h_addr_list[0];
sa.sin_port = htons(80);
connect( s, &sa, sizeof(sa) );

const int bsize = 1024*1024;  // 1 megabyte
char *buffer = new char[bsize];
wsprintf( buffer, "GET http://google.ru/ HTTP/1.0\r\nHost: google.ru\r\n\r\n" );
send( s, buffer, strlen(buffer), 0 );

int bytes = 0, pos = 0;
do {
  bytes = recv( s, buffer+pos, bsize-pos, 0 );
  if( !(bytes>0) )
    break;
  pos += bytes;
  buffer[pos] = 0;
} while(1);

closesocket( s );
char *body = strstr( buffer, "\r\n\r\n" );
body += 4; // strlen of \r\n\r\n

// now buffer contains full response, body contains only response body

delete buffer;
Цитата:
Вот накатал скачивание при помощи класса CInternetFile библиотеки MFC.
Скачка файла через MFC - из пушки по воробьям

Тема закрыта

Последний раз редактировалось _Great_; 07.07.2007 в 11:31..