socket编程为什么要选择AF_INET?

 我来答
大野瘦子
高粉答主

2018-12-30 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.5万
展开全部

选择 AF_INET 的目的就是使用 IPv4 进行通信。因为 IPv4 使用 32 位地址,相比 IPv6 的 128 位来说,计算更快,便于用于局域网通信。

而且 AF_INET 相比 AF_UNIX 更具通用性,因为 Windows 上有 AF_INET 而没有 AF_UNIX。

注:AF_INET(又称 PF_INET)是 IPv4 网络协议的套接字类型,AF_INET6 则是 IPv6 的;而 AF_UNIX 则是 Unix 系统本地通信。

扩展资料:

AF_INET和PF_INET的区别

1、AF 表示ADDRESS FAMILY 地址族 

2、PF 表示PROTOCL FAMILY 协议族

3、Winsock2.h中

#define AF_INET 0

#define PF_INET AF_INET

所以在windows中AF_INET与PF_INET完全一样

4、而在Unix/Linux系统中,在不同的版本中这两者有微小差别,对于BSD,是AF,对于POSIX是PF

在函数socketpair与socket的domain参数中有:AF_UNIX,AF_LOCAL,AF_INET,PF_UNIX,PF_LOCAL,PF_INET.

这几个参数有:AF_UNIX=AF_LOCAL, PF_UNIX=PF_LOCAL, AF_LOCAL=PF_LOCAL, AF_INET=PF_INET. 

对于socketpair与socket的domain参数,使用PF_LOCAL系列,而在初始化套接口地址结构时,则使用AF_LOCAL.

例如: z = socket(PF_LOCAL, SOCK_STREAM, 0);     adr_unix.sin_family = AF_LOCAL;

幸巴达
2009-12-02 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6953
采纳率:38%
帮助的人:2473万
展开全部
我们一般的英特网局域网用的就是这个,AF_INET只是一个标识而已。
定义是这样的
#define AF_INET 2 // internetwork: UDP, TCP, etc.

此外还有IPX网络,红警用的就是IPX。
#define AF_IPX AF_NS // IPX protocols: IPX, SPX, etc.
还有ATM网络,就不一一列举了。
这些都定义在了winsock2.h文件中
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我是邓大爷
2015-06-19 · 超过16用户采纳过TA的回答
知道答主
回答量:213
采纳率:0%
帮助的人:71.1万
展开全部
socket()是网络编程的套接字。第一参数表示通信使用的的协议AF_INET表示IPV4,AF_INET表示IPV6,AF_UNIX,AF_LOCAL表示本地通信
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dwcxxx
2015-08-07 · TA获得超过156个赞
知道小有建树答主
回答量:183
采纳率:0%
帮助的人:146万
展开全部
AF 表示ADDRESS FAMILY 地址族
PF 表示PROTOCL FAMILY 协议族
Winsock2.h中
#define AF_INET 0
#define PF_INET AF_INET

socket传递数据前需要数据封装,里面需要
AF_INET的支持。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
迅捷司鼐膊俳b9ade
2015-06-17 · TA获得超过532个赞
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:212万
展开全部
因为通常情况下我们是在IPv4互联网下编写socket程序,所以要选择AF_INET;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式