There was an error while loading. Please reload this page.
Detail coming soon... In the mean time, some rough notes:
sockaddr
When declaring space to hold either an IPv4 or IPv6 address, use a struct sockaddr_storage.
struct sockaddr_storage
When an interface function can take either an IPv4 or IPv6 sockaddr, use just struct sockaddr*
struct sockaddr*