地址信息函数

地址信息函数

在某些情况下,我们想知道一个连接socket的本端socket地址,以及远端的socket地址。下面这两个函数正是用于解决这个问题:

1
2
3
4
#include <sys/socket.h>

int getsockname(int sockfd, struct sockaddr * address, socklen_t * addr_len);
int getpeername(int sockfd, struct sockaddr * address, socklen_t * addr_len);

函数参数介绍

getsocketname获取sockfd对应的本端socket地址,并将其存储于address参数指定的内存中,该socket地址的长度则存储于addr_len参数指向的变量中。

getpeername获取sockfd对应的远端socket地址,参数的含义和getsocketname的参数一样。

返回值

getsocketname成功时返回0,失败则返回-1并设置errno。

getpeername成功时返回0,失败时返回-1并设置errno。