首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >了解套接字编程的INADDR_ANY

了解套接字编程的INADDR_ANY
EN

Stack Overflow用户
提问于 2013-05-12 23:02:01
回答 5查看 207.7K关注 0票数 96

我正在尝试编写一些套接字,因此,在服务器端,我使用htonl(INADDR_ANY)。据我所知,这个函数似乎会生成一个随机的IP (我说的对吗?)实际上,我想将我的套接字绑定到我的localhost。但是如果我运行这个

printf("%d",htonl(INADDR_ANY));

我得到0作为返回值。有人能给我解释一下吗?

EN

回答 5

Stack Overflow用户

发布于 2013-05-12 23:17:49

当您不需要将套接字绑定到特定IP时,可以使用INADDR_ANY。当您在调用bind()时使用此值作为地址时,套接字将接受到计算机的所有IP的连接。

票数 65
EN

Stack Overflow用户

发布于 2018-05-11 13:52:03

INADDR_ANY指示侦听套接字绑定到所有可用接口。这与尝试绑定到inet_addr("0.0.0.0")是一样的。为了完整起见,我还会提到IPv6的IN6ADDR_ANY_INIT,它与尝试绑定到IPv6套接字的::地址是一样的。

#include <netinet/in.h>

struct in6_addr addr = IN6ADDR_ANY_INIT;

还要注意,当您将IPv6套接字绑定到IN6ADDR_ANY_INIT时,您的套接字将绑定到所有IPv6接口,并且应该能够接受来自IPv4客户端的连接(通过IPV6映射的地址)。

票数 6
EN

Stack Overflow用户

发布于 2017-07-12 15:53:37

INADDR_ANY是一个常量,它的值包含0。只有当你想从你不关心ip-add的所有活动端口连接时,才会用到这一点。因此,如果您想要连接任何特定ip,您应该像这样提到my_sockaddress.sin_addr.s_addr = inet_addr("192.168.78.2")

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16508685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档