SOCKADDR_STORAGE:
The SOCKADDR_STORAGE structure stores socket address information. Since the SOCKADDR_STORAGE structure is sufficiently large to store IPv4 or IPv6 address information, or others, its use promotes protocol-family and protocol-version independence, and simplifies cross-platform development. Use the SOCKADDR_STORAGE structure in place of the sockaddr structure.
typedef struct sockaddr_storage
{
short ss_family; //Address family of the socket, such as AF_INET.
char __ss_pad1[_SS_PAD1SIZE]; //Reserved. Defined as a 48-bit pad that ensures SOCKADDR_STORAGE achieves 64-bit alignment.
__int64 __ss_align; //Reserved. Used by the compiler to align the structure.
char __ss_pad2[_SS_PAD2SIZE]; //Reserved. Used by the compiler to align the structure.