功能描述:
返回指定套接字的IP地址。
用法:
#include <sys/socket.h>
int getsockname(int sock, struct sockaddr *name, socklen_t *namelen);
参数:
sock:需要获取名称的套接字。(注意这里的sock已经包含了目的地址和本地地址,即已经被绑定了(connect函数和bind函数都可以将其绑定))
name:存放所获取套接字名称的缓冲区。(由于connect函数的绑定socket是由系统隐式绑定本地地址的,所以用户如果想要知道这个本地的地址就可以调用getsockname,这个本地地址被返回到name中)
nemalen:作为入口参数,name指向空间的最大长度。作为出口参数,name的实际长度。
返回说明:
成功执行时,返回0。失败返回-1,errno被设为以下的某个值
EBADF:sock不是有效的文件描述词
EFAULT:name指向的内存并非有效的进程空间
EINVAL:namelen无效,可能为负值
ENOBUFS:执行操作时,系统资源不足
ENOTCONN:套接字尚未连接上
ENOTSOCK:sock描述的不是套接字