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

  • Автор темы Kenterell
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

Kenterell

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

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...
 
G

Guest

Spasibo......
Ishodniki ya nashel...... razbirayus'.........
 
G

Guest

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

Guest

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

Kenterell

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

On rugaetsa ra stroku:
Код:
s truct sockaddr_in serv_addr;
 
D

Dr.Gigabit

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

Код:
/*
-----------------------------------------------------------
  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 */
}
 
K

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 ;)
 
D

Dr.Gigabit

Посмотрите здесь:

 
D

Dico

Посмотри исходник ISQ под linux, в той части где идёт соединение через прокс ? либо в исходниках Lynx-а.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!