Ir para conteúdo
Fórum Script Brasil
  • 0

Como faço para acessar site e exibir seu conteúdo?


Date_Bayo!

Pergunta

Preciso desenvolver um programa que acesse uma página qualquer e mostre a resposta separada em cabeçalho e conteúdo. É preciso enviar a seguinte string:

HEAD / HTTP/1.1

Host:

User-agent: Teste1

Connection: close

Procurei em vários lugares sobre como fazer, mas não achei nada.

Me ajudem por favor!!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

É em C++.

Um amigo me falou que dava pra se basear nesse código de "Servidor que aguarda o cliente conectar":

#include <WinSock2.h>
#include <stdio.h>
#include <conio.h>

int main() {
    WORD versao;     // Versão        
    WSADATA dados; // Dados da dll
    int erro;

    // Monta o número da versão
    versao = MAKEWORD(2, 2);

    erro = WSAStartup(versao, &dados);
    if (erro != 0) 
        printf("Winsock não encontrado!\n");
    else {
        printf("Winsock ok\n");
        printf("Estado: %s.\n", dados.szSystemStatus);
        printf("Qtde Sockets: %u.\n", dados.iMaxSockets);

        SOCKET m_socket;
        
        // Parâmetros: internet, TCP, IPv4
        m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

        if (m_socket == INVALID_SOCKET) {
            printf("Erro no socket\n");
            WSACleanup();
            return 0;
        }
        sockaddr_in endereco;
        endereco.sin_family = AF_INET;
        endereco.sin_addr.s_addr = inet_addr("127.0.0.1");
        endereco.sin_port = htons(44444);

        erro = bind(m_socket, (SOCKADDR*) &endereco, sizeof(endereco));
        if (erro == SOCKET_ERROR) {
            printf("bind() falhou\n");
            closesocket(m_socket);
            WSACleanup();
            return 0;
        }

        printf("bind() ok\n");

        erro = listen(m_socket, 1);
        if (erro == SOCKET_ERROR) {
            printf("listen() falhou\n");
            closesocket(m_socket);
            WSACleanup();
            return 0;
        }

        printf("Aguardando conexoes...\n");

        SOCKET aceito;

        while (1) {

            aceito = SOCKET_ERROR;
            while(aceito == SOCKET_ERROR) {
                aceito = accept(m_socket, NULL, NULL);
            }

            printf("Conexao aceita!\n");
            break;
        }

        int bytesEnviados;
        int bytesRecebidos = SOCKET_ERROR;

        char bufferEnvio[100];
        char bufferRecebido[100] = "";

        
    
        while (1)
        {
            bytesRecebidos = recv(aceito, bufferRecebido, 100, 0);

            if (bytesRecebidos == SOCKET_ERROR)
                printf("Servidor. Erro no recebimento.\n");
            else
            {
                printf("Cliente: %s\n", bufferRecebido);
            }

            printf("Digite a mensagem:\n");
            gets(bufferEnvio);
            strcat(bufferEnvio,"\r\n");
            bytesEnviados = send(aceito, bufferEnvio, strlen(bufferEnvio), 0);
        }

        WSACleanup();
    }

    getch();
}

Link para o comentário
Compartilhar em outros sites

  • 0

Ou será que é pelo "CLIENTE"?

WORD versao;     // Versão        
    WSADATA dados; // Dados da dll
    int erro;

    // Monta o número da versão
    versao = MAKEWORD(2, 2);

    erro = WSAStartup(versao, &dados);
    if (erro != 0) 
        printf("Winsock não encontrado!\n");
    else {
        printf("Winsock ok\n");
        printf("Estado: %s.\n", dados.szSystemStatus);
        printf("Qtde Sockets: %u.\n", dados.iMaxSockets);

        SOCKET m_socket;
        
        // Parâmetros: internet, TCP, IPv4
        m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

        if (m_socket == INVALID_SOCKET) {
            printf("Erro no socket\n");
            WSACleanup();
            return 0;
        }
        sockaddr_in endereco;
        endereco.sin_family = AF_INET;
        endereco.sin_addr.s_addr = inet_addr("127.0.0.1");
        endereco.sin_port = htons(44444);

        erro = connect(m_socket, (SOCKADDR*) &endereco, sizeof(endereco));
        if (erro == SOCKET_ERROR) {
            printf("connect() falhou\n");
            closesocket(m_socket);
            WSACleanup();
            return 0;
        }

        printf("Conexão estabelecida\n");
        // CHAT
        
        int bytesEnviados;
        int bytesRecebidos = SOCKET_ERROR;

        char bufferEnvio[100];
        char bufferRecebido[100] = "";

        //printf("Cliente: Dados enviados: %ld\n", bytesEnviados);
        
        while (1)
        {
            printf("Digite a mensagem:\n");
            gets(bufferEnvio);
            strcat(bufferEnvio,"\r\n");
            bytesEnviados = send(m_socket, bufferEnvio, strlen(bufferEnvio), 0);

            bytesRecebidos = recv(m_socket, bufferRecebido, 100, 0);

            if (bytesRecebidos == SOCKET_ERROR)
            printf("Cliente. Erro no recebimento.\n");
            else
            {
                printf("Servidor: %s\n", bufferRecebido);
            }
        }
        
        WSACleanup();
    }

    getch();
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...