getpeername/getsockname Use sockaddr_storage for allocating region sizeof(sockaddr_in6) > sizeof(sockaddr) struct sockaddr_storage ss; struct sockaddr *sa; int salen; salen = sizeof(ss); sa = (struct sockaddr *)&ss; getpeername(s, sa, salen);