getpeername - get the name of the peer socket int
getpeername(int socket, struct sockaddr *restrict address,
socklen_t *restrict address_len); The getpeername() function
shall retrieve the peer address of the specified socket, store
this address in the sockaddr structure pointed to by the address
argument, and store the length of this address in the object
pointed to by the address_len argument. If the actual length of
the address is greater than the length of the supplied sockaddr
structure, the stored address shall be truncated. If the
protocol permits connections by unbound clients, and the peer is
not bound, then the value stored in the object pointed to by
address is unspecified. Upon successful completion, 0 shall be
returned. Otherwise, -1 shall be returned and errno set to
indicate the error. The getpeername() function shall fail if: -
The socket argument is not a valid file descriptor. - The socket
has been shut down. - The socket is not connected or otherwise
has not had the peer pre-specified. - Th