Vol-Alchevsk
Ucoz.net


Меню сайта
Реклама
вложение денег в акции
Статистика

Онлайн всего: 6
Гостей: 6
Пользователей: 0
// WinMain.cpp
 
#include <windows.h>
#pragma comment(lib, "ws2_32.lib")
 
DWORD GetHostAddress( const char* cAddr )
{
    struct hostent* phe;
    phe = gethostbyname( cAddr );
    if( phe==NULL ) return 0;
    char* p = *phe->h_addr_list;
    return *( (DWORD*)p );
}
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    WSADATA WsaData;
    if( WSAStartup( 0x0101, &WsaData ) != 0 )
    {
        // Ошибка, выход.
        MessageBox(NULL,TEXT("WSAStartup"),TEXT("Ошибка"),MB_OK|MB_ICONWARNING|MB_SETFOREGROUND|MB_TOPMOST);
        return 1;
    }
 
    SOCKET Socket;
    Socket = socket( AF_INET, SOCK_STREAM, 0 );
    if( Socket==INVALID_SOCKET )
    {
        // Ошибка, выход.
        MessageBox(NULL,TEXT("Socket"),TEXT("Ошибка"),MB_OK|MB_ICONWARNING|MB_SETFOREGROUND|MB_TOPMOST);
        return 1;
    }
 
    int nPort = 80;
    char svHostname[] = "ia700406.us.archive.org";
 
    SOCKADDR_IN Addr;
    Addr.sin_family         = AF_INET;
    Addr.sin_port           = htons( (WORD)nPort );
    Addr.sin_addr.s_addr    = GetHostAddress( (const char*)svHostname );
    if( connect( Socket, (LPSOCKADDR)&Addr, sizeof(SOCKADDR_IN) ) == SOCKET_ERROR )
    {
        // Ошибка, выход.
        MessageBox(NULL,TEXT("Connect"),TEXT("Ошибка"),MB_OK|MB_ICONWARNING|MB_SETFOREGROUND|MB_TOPMOST);
        return 1;
    }
 
    char svFilename[] = "https://ia700406.us.archive.org/34/items/cdc255/cdc255_64kb_mp3.zip";
 
    char svBuffer[1024];
    lstrcpyA(svBuffer, "GET " );
    lstrcatA(svBuffer, svFilename);
    lstrcatA(svBuffer, " HTTP/1.0\r\n" );
 
    lstrcatA(svBuffer,
        "Accept: image/gif, image/x-xbitmap, image/jpeg, \
        image/pjpeg, application/vnd.ms-excel, application/msword, \
        application/vnd.ms-powerpoint, */*\r\n"
        );
 
    lstrcatA(svBuffer,"Accept-Language: en-us\r\n");
    lstrcatA(svBuffer,"Accept-Encoding: gzip, deflate\r\n");
    lstrcatA(svBuffer,"User-Agent: Mozilla/5.0\r\n");   
    //lstrcat(svBuffer,"Cookie: mycookie=quackquack\r\n");
    
    lstrcatA(svBuffer, "Host: ");
    lstrcatA(svBuffer, svHostname);
    lstrcatA(svBuffer, "\r\n");
    lstrcatA(svBuffer, "\r\n");
 
    if( send( Socket, svBuffer, lstrlenA(svBuffer), 0 ) == SOCKET_ERROR )
    {
        // Ошибка, выход.
        MessageBox(NULL,TEXT("Send"),TEXT("Ошибка"),MB_OK|MB_ICONWARNING|MB_SETFOREGROUND|MB_TOPMOST);
        return 1;
    }
 
    int nCount;
    int nChars=0;
    BOOL bDone=FALSE;
 
    while( !bDone )
    {
        nCount = recv( Socket, svBuffer, 1, 0 );
        if( nCount < 0 )
            bDone = TRUE;
 
        switch( *svBuffer )
        {
            case '\r':
                break;
            case '\n':
                if( nChars==0 )
                    bDone=TRUE;
                nChars=0;
                break;
            default:
                ++nChars;
                break;
        }
    }
 
    DWORD dwBytes;// Создать и записать новый файл.
    LPCTSTR FileSave = TEXT("C:\\cdc255_64kb_mp3.zip");
    HANDLE hFile=CreateFile(FileSave,
        GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
    if( hFile!=INVALID_HANDLE_VALUE)
    {
        do {        
            nCount = recv( Socket, svBuffer, 1024, 0 );
            if( nCount > 0 )
            {
                WriteFile( hFile, svBuffer, nCount, &dwBytes, NULL );
            }
        } while( nCount > 0 );
 
        CloseHandle( hFile );
    }
    closesocket( Socket );  
    
    MessageBox(NULL,TEXT("Сделано"),TEXT("Info"),MB_OK|MB_ICONINFORMATION|MB_SETFOREGROUND|MB_TOPMOST);
    return 0;
}
Вход на сайт
Реклама
Меню 2
Copyright MyCorp © 2024Бесплатный хостинг uCoz