getaddrinfo()는 struct addrinfo
을 채우고 실제 포장 된 주소는 struct sockaddr *ai_addr
필드에 저장됩니다. struct sockaddr
은 실제 이진 주소 표현을 사용하는 char *sa_data
필드를 가지고 있습니다. 을 사용하여이 sa_data를 다른 변수에 복사하고 싶습니다.이 필드의 실제 길이를 알아야합니다.getaddrinfo()에 의해 반환 된 ai_addr-> sa_data의 실제 크기를 얻는 방법
나는 ai_addrlen이 내가 필요한 것이라고 생각한다. 그러나 실제로 IPv4의 경우 16, IPv6의 경우 28을 반환합니다. 너무 많이 생각합니다. 그럼, sa_data 길이를 얻는 가장 올바른 방법은 무엇입니까? length = sa_family == AF_INET ? 4 : 16
또는 length = ai_addrlen - 12
일 수 있습니까?
설명해 주셔서 감사합니다. –