getaddrinfo - возвращаемые данные об IP адресе

Подскажите пожалуйста, вот делаю вызов функции getaddinfo из Winsock:

char my_char_HOST[] = "ru.stackoverflow.com";
    char my_char_NAME_SERVICE[] = "https";
 
    ADDRINFOA my_ADDRINFOA;
 
    memset(&my_ADDRINFOA, 0, sizeof(my_ADDRINFOA)); 
    my_ADDRINFOA.ai_family = AF_INET;     
    my_ADDRINFOA.ai_socktype = SOCK_STREAM; 

 
    struct addrinfo *servinfo;  // Сюда getaddrinfo - заносит возвращенную информацию
 
    INT my_getaddrinfo = getaddrinfo(my_char_HOST, my_char_NAME_SERVICE, &my_ADDRINFOA, &servinfo);
 
    cout << "my_getaddrinfo:" << my_getaddrinfo<< endl;   //Равно 0 - завершается успешно

Все работает, getaddrinfo завершается без ошибок, вывожу на консоль заполненные функцией данные об IP в указателе на структуру servinfo(sockaddr) в параметре sa_data:

for (int i = 0; i < 14; i++)
{
    cout << "ai_addr_sa_data:" << (int)(servinfo->ai_addr->sa_data[i]) << endl;
}

Вот что выводится:

ai_addr_sa_data:1       //?
ai_addr_sa_data:-69     //?
ai_addr_sa_data:-105    //(это переполненный char числа 151)
ai_addr_sa_data:101
ai_addr_sa_data:-127    //(это переполненный char числа 193)
ai_addr_sa_data:69

IP адрес ru.stackoverflow.com - 151.101.193.69, то есть getaddrinfo правильно вернула значение, но вопрос, что за значения в первых двух байтах - 1 и -69 ??? Причем они всегда постоянны, то есть чтобы я не запрашивал - google, facebook, mail или stackoverflow - первые два байта возвращаются именно с этими значениями.


Ответы (1 шт):

Автор решения: gbg

sockaddr указывает на структуру sockaddr_in,в которой первые два байта - это номер порта. Так что если вы воспользуетесь этой структурой, вы увидите там 443, записанное в сетевом порядке байт.

→ Ссылка