Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Открыть url для чтения


Автор: Vits1987 6.4.2009, 10:17

как открыть адрес для чтения

http://localhost:80/server

пробывал так, но не работает

Код

    if ((in=fopen("http://localhost:80/server","r")) == NULL)
    {
        fprintf(stderr,"No open!");
        return 1;
    }
    

или нужно через сокеты? поясните плиз

Автор: MAKCim 6.4.2009, 10:22
Vits1987
я бы для начала открыл книгу  smile 

а по сабжу
Цитата(Vits1987 @  6.4.2009,  10:17 Найти цитируемый пост)
или нужно через сокеты?

именно

Автор: Vits1987 6.4.2009, 10:28
а Вы можете привести кусок кода, который это реализует если конешно вас не затруднит

под Unix работает а вот под Windows на библиотеки ругается

Автор: xvr 6.4.2009, 13:47
Юзай готовые библиотеки - [lib]curl например

Автор: sdukshis 6.4.2009, 22:54
Вот пример под Linux:

Код

#include <stdlib.h>
#include <stdio.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <unistd.h>
#include <string.h>
#include <netdb.h>

#define MAXBUFFSIZE 1024

void get_home_page(int socket_fd);

int main(int argc, char* argv[]){

    int socket_fd;
    struct sockaddr_in name;
    struct hostent* hostinfo;

    socket_fd = socket(PF_INET,SOCK_STREAM,0);
    name.sin_family = AF_INET;
    hostinfo = gethostbyname(argv[1]);

    if(hostinfo == NULL)
        return 1;
    
        if(!inet_aton(hostinfo->h_addr_list[0],&name.sin_addr)) return 1;
        name.sin_port = htons(80);

        if(connect(socket_fd,&name,sizeof(name)) == -1){
            perror("connect");
            return 1;
        }

    get_home_page(socket_fd);
    
    close(socket_fd);
    return 0;
}

void get_home_page(int socket_fd){
    char buffer[MAXBUFFSIZE];
    ssize_t number_characters_read;

    sprintf(buffer,"GET / HTTP/1.0\r\n\r\n");
    send(socket_fd,buffer,strlen(buffer),0);

    while(1){
        if(!(number_characters_read = recv(socket_fd,buffer,MAXBUFFSIZE,0)))
            return;
        fwrite(buffer,sizeof(char),number_characters_read,stdout);
    }
}


Автор: 0xDX 7.4.2009, 02:38
в google набери "download souce mozila" - отчиный пример.....

Автор: Vits1987 7.4.2009, 08:39
sdukshis спасибо...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)