Некак не получатся правильно составить запрос на скачку файла . Сервер все время отвечает Код Code: char* CHttpUtilites::RequestHtml(char* GET,char* HOST) { if(HOST==NULL) HOST = serverName; if(!Connect(HOST)) return NULL; int memory=MAX_PATH; htmlBuff =(char*) malloc(memory * sizeof(char)); strcpy(htmlBuff,"GET: "); strcat(htmlBuff,GET); strcat(htmlBuff," HTTP/1.1\r\n"); strcat(htmlBuff,"Host: "); strcat(htmlBuff,HOST); strcat(htmlBuff,"\r\n"); strcat(htmlBuff,"User-Agent: Mozilla/4.8 [en](Windows NT 5.0; U)\r\n"); strcat(htmlBuff,"Connection: close\r\n\r\n"); if(send(httpsock,htmlBuff,strlen(htmlBuff),0)==SOCKET_ERROR){ Disconnect(); return NULL; } int recvByte; while( (recvByte=recv(httpsock,&htmlBuff[memory-MAX_PATH],MAX_PATH,0))>0) { if(recvByte==MAX_PATH) { memory+=MAX_PATH; realloc(htmlBuff,memory * sizeof(char)); } } if(recvByte==SOCKET_ERROR){ Disconnect(); return NULL; } printf("\n%s\n",htmlBuff); Disconnect(); return htmlBuff; } Пока что хочу хотя бы вывести на экран файл. Вызов Code: char* receiveInfo = RequestHtml("/1.txt");
А слабо было поглядеть как это делает любой браузер? Ты даже HTTP запрос не правильно составляешь. После GET двоеточие не ставится
winsock есть такая функция как sprintf (это я про strcat) и вот эта часть мне кажется бредом: Code: memory+=MAX_PATH; realloc(htmlBuff,memory * sizeof(char)); вроде такой ход не работает... по крайней мере у меня не работал, когда-то. используй recv с флагом MSG_PEEK что-бы узнать размер пакета.
2Gar|k способ работает ,но твой наверное лучше, попробую функцию sprintf знаю но хотелось бы обойтись без stdio.h
может пригодится суть в том что перебирает .dll и .exe и ищет в экспорте совпадение hxxp://zalil.ru/29751544