Witam,
Próbuje zrozumieć jak pobrać plik dla przykładu exe i zapisać na dysku. Nie zależy mi na gotowej odpowiedzi ale na tym żebym zrozumiał o co chodzi.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winsock.h>
int main(int argc, char *argv[])
{
WSADATA wsaData;
//WSAData wsaData;
if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0) {
fprintf(stderr, "WSAStartup failed.\n");
exit(1);
}
int socket_desc;
struct sockaddr_in server;
char *message ;
char *server_reply;
socket_desc = socket(AF_INET , SOCK_STREAM , 0);
server.sin_addr.s_addr = inet_addr("127.0.0.1");
server.sin_family = AF_INET;
server.sin_port = htons( 80 );
connect(socket_desc , (struct sockaddr *)&server , sizeof(server));
message = "GET /z.exe HTTP/1.0\r\n\r\n";
send(socket_desc , message , strlen(message) , 0);
//Receive a reply from the server
recv(socket_desc, server_reply , strlen(server_reply) , 0);
puts("Reply received\n");
puts(server_reply);
// do tego momentu było ok jak pobierałem zawartość strony www. Przy pliku coś idzie nie tak.
FILE * fp;
fp=fopen("z.exe", "wb"); // tu z tego co juz sie dowiedziałem próbuje utworzyć plik binarny i zapisać do niego dane
fwrite( server_reply, sizeof(char),strlen(server_reply), fp);
fclose(fp);
closesocket(socket_desc);
WSACleanup();
system("PAUSE");
return 0;
}
mad_penguin