2
struct sockaddr을 가지고 있고 구조체 addrinfo를 만들 필요가 있습니다 (다른 API가 원하는 이유이기 때문에). IP 주소는 IPv4 또는 IPv6 일 수 있습니다. 그걸 처리하는 가장 좋은 방법은 무엇입니까? man 3 getaddrinfo에서struct sockaddr에서 struct addrinfo를 생성하는 방법은 무엇입니까?
struct sockaddr을 가지고 있고 구조체 addrinfo를 만들 필요가 있습니다 (다른 API가 원하는 이유이기 때문에). IP 주소는 IPv4 또는 IPv6 일 수 있습니다. 그걸 처리하는 가장 좋은 방법은 무엇입니까? man 3 getaddrinfo에서struct sockaddr에서 struct addrinfo를 생성하는 방법은 무엇입니까?
,
struct addrinfo {
int ai_flags;
int ai_family;
int ai_socktype;
int ai_protocol;
size_t ai_addrlen;
struct sockaddr *ai_addr;
char *ai_canonname;
struct addrinfo *ai_next;
};
struct addrinfo
그냥 struct sockaddr
가보다 더 많은 정보를 포함하고 있습니다. struct sockaddr_in
이 있으면이 정보 중 일부를 사용할 수 있습니다 (.ai_family = AF_INET, .ai_addrlen = sizeof(struct sockaddr_in)
). 이것이 충분한 지 여부는 다른 API가 찾고있는 것에 달려 있습니다.
예, 새로운 addrinfo를 작성하고 sockaddr을 * ai_addr에 넣고 다른 필드를 적당한 값으로 채우는 것이 좋습니다. – bortzmeyer