Cкачивание файла с заданного URL в C++ под Linux

Тема в разделе "Свободное общение", создана пользователем Kenterell, 6 дек 2004.

Статус темы:
Закрыта.
  1. Kenterell

    Kenterell Гость

    У меня возникла проблемма.
    Нужна библиотека под C++, способная скачивать файлы по заданному адресу в Linux. Так как с программированием в интернете работаю чуть ли не в первый раз - понятия не имею как это сделать...
    Подскажите как, или где посмотреть как это реализовано?
     
  2. Guest

    Guest Гость

    Дык, смотреть исходники wget.
     
  3. Guest

    Guest Гость

    Esli mojesh - kin' v menya ssilkoy na ishodnik wget...
    Sama programma, ka 4erniy yashik ne sovsem menya ustraivaet... na to est' pri4ini, no ishodnik ya b posmotrel...
     
  4. Guest

    Guest Гость

    Spasibo......
    Ishodniki ya nashel...... razbirayus'.........
     
  5. Guest

    Guest Гость

    Guest
    расскажи потом как и что было :huh: OK????
     
  6. Guest

    Guest Гость

    Emmmm........ ya potom viloju to, 4to ne predstavlaet kommer4eskoy tayni.... :huh:
     
  7. Kenterell

    Kenterell Гость

    Voobshem... jdite ishodnikov...
     
  8. Dr.Gigabit

    Dr.Gigabit Гость

    Cокеты не катят?
     
  9. Kenterell

    Kenterell Гость

    katyat... tolko nujno nemnogo konkretnee...
     
  10. Kenterell

    Kenterell Гость

    Neyasno po4emu on ne vidit class sockaddr_in...
    Class "sockadd" sushestvuet, a "sockaddr_in" po ego slovam- net....

    On rugaetsa ra stroku:
    Код (Text):
    s truct sockaddr_in serv_addr;
     
  11. Dr.Gigabit

    Dr.Gigabit Гость

    Вот это должно работать:

    Код (Text):
    /*
    -----------------------------------------------------------
      MakeConnection

      Function allocates a socket and estabishes a connection
      with remote host. Default port number 80.

      Input : WWW server name (with port number, if it is not 80)
      Output : file descriptor on success
                  -1 on error

    -----------------------------------------------------------
    */
    int MakeConnection(unsigned char* ServerName){
      int s;
      struct sockaddr_in ssin;
      struct hostent* hp;
      int PortNum;
      unsigned char strHlp[STRNGLEN], *pch;

      /* use default port number - 80 or specific number from the
        server name */
      strcpy(strHlp,ServerName);
      pch = strchr(strHlp,':');
      if(pch==NULL){
        PortNum = 80;
      }else{
        pch[0] = '\0';
        pch++;
        PortNum = atoi(pch);
        if(PortNum==0){
          PortNum = 80;
        }
      }

      /* get host by name - resolve host name into IP address */
      if( (hp=gethostbyname(strHlp)) == NULL  )
      {
        return -1;
      }

      bzero(&ssin, sizeof(ssin));
      bcopy(hp->h_addr, &ssin.sin_addr, hp->h_length);
      ssin.sin_family = hp->h_addrtype;
      ssin.sin_port = htons(PortNum);

      /* allocate a socket */
      if((s=socket(AF_INET, SOCK_STREAM, 0))==-1)
      {
        return -1;
      }

      /* make a connection */
      if(connect(s, &ssin, sizeof(ssin), 0)==-1){

        return -1;
      }

      return s; /* socket descriptor */
    }
     
  12. Kenterell

    Kenterell Гость

    Spasibo. Etu stadiyu ya uzhe proshel. ;)
    Teper' drugoy vopros - prodoljenie etogo je: kak polu4it' avtorizaciyu proxy v socket? Mne nujno, 4tobi programma ispol'zovala takoy metod. ;)
    Zaranee spasibo vsem ;)
     
  13. Dr.Gigabit

    Dr.Gigabit Гость

  14. Dico

    Dico Гость

    Посмотри исходник ISQ под linux, в той части где идёт соединение через прокс ? либо в исходниках Lynx-а.
     
  15. Kenterell

    Kenterell Гость

Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей