char request[]=
"GET http://sources.codenet.ru/file/1628/ss-0.1.0.143.rar/ HTTP/1.0\r\n\
Accept: application/octet-stream */*\r\n\
Accept-Language: ru\r\n\
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2)\r\n\
Transfer-Encoding: chunked\r\n\
Host: sources.codenet.ru\r\n\r\n";
WSADATA wsadata;
SOCKET m_socket;
sockaddr_in adr;
hostent* hn;
char buff [4096];
char head [1];
if (WSAStartup (0x0101, &wsadata) != 0)return;
if (INVALID_SOCKET == (m_socket = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)))return;
if (NULL == ( hn = gethostbyname ("myproxy")))return;
adr.sin_family = AF_INET;
adr.sin_addr.S_un.S_addr = *(DWORD*)hn->h_addr_list[0];
adr.sin_port = htons(3128);
if (SOCKET_ERROR == connect (m_socket, (sockaddr*)&adr, sizeof (adr)))return;
if (SOCKET_ERROR == send (m_socket, request, strlen(request), 0))return;
int len;
FILE *stream;
stream = fopen ("ss-0.1.0.1431.rar", "w");
do
{
len = recv (m_socket, (char*)&buff, 4096, 0);
fwrite((void*)buff, len, 1, stream);
Form1->Memo1->Lines->Add((char*)buff);
}while (len!=0);
fclose(stream);
if (SOCKET_ERROR == closesocket(m_socket))return;
Winsock в скачиваемом файле мусор
После ручного удаления заголовка ответа сервера из телв файла (в блокноте) файл все равно не открывается.
Собственно вопрос: как избавиться от мусора?
ЗЫ: пробовал размер буфера делать ==1 и равным длине файла - та же песня.
Цитата: oxotnik333
Скачиваю *rar архив примером из FAQа, в результате файл содержит заголовок ответа сервера + в теле получается какой то мусор, и того исходный файл - 417 кб, а приходит 419 кб.
После ручного удаления заголовка ответа сервера из телв файла (в блокноте) файл все равно не открывается.
Собственно вопрос: как избавиться от мусора?
ЗЫ: пробовал размер буфера делать ==1 и равным длине файла - та же песня.
После ручного удаления заголовка ответа сервера из телв файла (в блокноте) файл все равно не открывается.
Собственно вопрос: как избавиться от мусора?
ЗЫ: пробовал размер буфера делать ==1 и равным длине файла - та же песня.
приводите свой код. как показывает практика - когда вы говорите о "примере из ФАК" - то лучше посмотреть что вы туда написали.
stream = fopen ("ss-0.1.0.1431.rar", "wb");
ЗЫ: можно закрыть или удалить