网络编程学习笔记(getnameinfo函数)

这个函数与getaddrinfo互补,它以一个套接口地址为参数,返回一个描述主机的字符串和一个描述服务的字符串。其函数原型如下:
#include <netdb.h>
int getnameinfo(const struct sockaddr *sockaddr, socklen_t addrlen, char *host, size_t hostlen, char *serv, size_t servlen, int flags);

成功返回0,出错返回-1

sockaddr指向包含协议地址的套接口地址结构,它将会被转换成可读的字符串,addrlen是结构的长度,这个结构及其长度通常由accept、recvfrom、getsockname或getpeername返回。

调用 者给两个直观可读的字符串分配空间:host和hostlen指定主机字符串,serv和servlen指定服务字符串。如果调用 者不想返回主机字符串,将hostlen设为0即可。同样servlen设为0就指定不返回服务的信息。为了给这两个字符串分配空间,<netdb.h>中定义了两个常值

NI_MAXHOST:返回的主机字符串的最大长度

NI_MAXSERV:返回的服务字符串的最大长度

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kgduu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值