Почему sockaddr_in и sockaddr несовместимы?

Я пытаюсь memcpy ipv4 адрес в *ai(структура addrinfo)

struct addrinfo *ai;
char *p = (char *)(void *)(ai->ai_addr);

memcpy(p + afd->a_off, "d83adcca", (size_t)afd->a_addrlen); // "d83adcca ipv4 address is hex data - not correct.."

Итак, мне нужно проверить, что я был правильно назначен. Я использую этот код:

struct sockaddr_in ipv4 = (struct sockaddr_in *)ai->ai_addr;
inet_ntop(AF_INET, &(ipv4->sin_addr), ipAddress, INET_ADDRSTRLEN);

НО, ipAddress и ai->ai_addr не совпадают!! Если вы знаете, как назначить эти структуры, пожалуйста, помогите мне. Благодарю.

0 ответов

Другие вопросы по тегам