Windows Socket HTTP соединение в C - PullRequest
       5

Windows Socket HTTP соединение в C

0 голосов
/ 28 февраля 2020

Я пытаюсь сделать HTTP-запрос GET, но я получаю ошибку с ошибкой из моего recv (). Может ли кто-нибудь помочь с этим?

Код:

#include <stdio.h>
#include <winsock2.h>

int main(){
    WSADATA wsa;
    WSAStartup(MAKEWORD(2,0),&wsa);
    int sock;
    struct sockaddr_in server_address;
    server_address.sin_family = AF_INET;
    server_address.sin_port = htons(80);
    server_address.sin_addr.s_addr = inet_addr("216.58.202.14");
    sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); 
    char *response,*header;
    header="GET / HTTP/1.1\r\nhost: www.youtube.com\r\n\r\n";
    response="";
    int connection = connect(sock,(struct sockaddr*) &server_address,sizeof(server_address));
    if(connection!=0){
        printf("error");
        return 1;
    } else {
        if(send(sock,header,sizeof(header),0)<0) return 0;
        printf("Sent\n");   
        if(recv(sock,response,sizeof(response),0)<0) return 0;
        printf("Recved\n");
        printf("response:\n%s",response);
    }
    return 0;
}

Выход:

Sent

г cc:

gcc clientHTTP.c -o clientHTTP.exe -l Ws2_32

1 Ответ

0 голосов
/ 28 февраля 2020

О, конечно! Изменил 13-ю строку на char response[2048],header[]="GET / HTTP/1.1\r\nhost: www.youtube.com\r\n\r\n"; и получил мой GET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...