Skip to content

Instantly share code, notes, and snippets.

@gamenite
Created January 27, 2020 12:46
Show Gist options
  • Save gamenite/fba220eeede2f4f9d074a14e9ff53dc9 to your computer and use it in GitHub Desktop.
Save gamenite/fba220eeede2f4f9d074a14e9ff53dc9 to your computer and use it in GitHub Desktop.
IPv4/IPv6混合编程示例 (sockaddr_storage)
struct sockaddr_storage addr;
memset(&addr, 0, sizeof(struct sockaddr_storage));
if (isIPv6 == TRUE)
{
struct sockaddr_in6 *addr_v6 = (struct sockaddr_in6 *)&addr;
addr_v6->sin6_family = AF_INET6;
addr_v6->sin6_port = 1234;
inet_pton(AF_INET6, “2001:3211::1”, &(addr_v6->sin6_addr));
}
else
{
struct sockaddr_in *addr_v4 = (struct sockaddr_in *)&addr;
addr_v4->sin_family = AF_INET;
addr_v4->sin_port = 1234;
inet_aton(“192.168.1.228”, &(addr_v4->sin_addr));
}
sendto(sock, buf, len, 0, (struct sockaddr *)&addr, sizeof(struct sockaddr_storage));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment