在某些情况下,我们想知道一个连接socket的本端socket地址,以及远端的
socket地址。下面这两个函数正是用于解决这个问题:
#includeint getsockname(int sockfd, struct sockaddr * address, socklen_t * address_len); int getpeername(int sockfd, struct sockaddr * address, socklen_t * address_len);
getsockname获取sockfd对应的本端socket地址,并将其存储于address参数指定的内存中,该socket地址的长度则存储于address_len参数指向的变量中。如果实际socket地址的长度大于address所指内存区的大小,那么该socket地址将被截断。getsockname 成功时返回0,失败返回-1并设置errno。
getpeername获取sockfd对应的远端socket 地址,其参数及返回值的含义与getsockname的参数及返回值相同。



